programing

장고 모델에서 외부 키 필드를 선택적으로 만드는 방법은 무엇입니까?

linuxpc 2023. 7. 20. 21:45
반응형

장고 모델에서 외부 키 필드를 선택적으로 만드는 방법은 무엇입니까?

다음 코드가 있습니다.

subject = models.ForeignKey(subjects)
location = models.ForeignKey(location)
publisher = models.ForeignKey(publisher)

제가 책의 세 가지 가치를 모두 갖지 못할 가능성이 있습니다.제목이나 위치 또는 게시자를 모를 수도 있습니다.이 경우에는 비워두고 싶습니다.

하지만 값이 존재하는 경우 선택 상자에서 값을 선택해야 합니다.이것이 가능합니까?

네, 그냥 추가하세요.blank=True, null=True다음과 같이 선택사항으로 유지할 각 필드에 대해

subject = models.ForeignKey(subjects, blank=True, null=True)

이를 달성하기 위해,on_delete논쟁은 함께 필요합니다.blank=True그리고.null=True이런 식으로 하시면 더 좋을 것 같습니다.

subject = models.ForeignKey(subjects, on_delete=models.SET_NULL, blank=True, null=True)

공백으로 설정해야 합니다= 및 null=모델에 참입니다.외부 키 필드를 선택 사항으로 설정하고 on_delete를 아래와 같이 설정해야 합니다.

my_field = models.ForeignKey(
    Parent_model, 
    blank=True, # Here
    null=True, # Here
    on_delete=models.CASCADE # Here
)

*어느 쪽이든 설정만 하여 주의하십시오.blank=True또는null=True로.models.ForeignKey()외부 키 필드를 선택사항으로 만들기에는 충분하지 않으므로 두 필드를 모두 선택사항으로 설정해야 합니다.

또한, 모델로 원하는 것을 달성하고 싶다면,OneToOneField()는 다음과 같이 동일한 인수를 설정해야 합니다.

my_field = models.OneToOneField(
    Parent_model, 
    blank=True, # Here
    null=True, # Here
    on_delete=models.CASCADE # Here
)

언급URL : https://stackoverflow.com/questions/6619984/how-to-make-the-foreign-key-field-optional-in-django-model

반응형