I ' Я хотел бы установить поле ForeignKey
в модели django, которое иногда указывает на другую таблицу. Но я хочу, чтобы все было в порядке, чтобы вставить идентификатор в это поле, которое ссылается на запись в другой таблице, которая может отсутствовать. Поэтому, если строка существует в другой таблице, я хотел бы получить все преимущества отношения ForeignKey. Но если нет, я бы хотел, чтобы это воспринималось как число.
Возможно ли это? Для этого ли нужны Родовые отношения?
Я новичок в Django, поэтому не знаю, предоставляет ли он то, что вам нужно, из коробки. Я подумал о чем-то вроде этого:
from django.db import models
class YourModel(models.Model):
my_fk = models.PositiveIntegerField()
def set_fk_obj(self, obj):
my_fk = obj.id
def get_fk_obj(self):
if my_fk == None:
return None
try:
obj = YourFkModel.objects.get(pk = self.my_fk)
return obj
except YourFkModel.DoesNotExist:
return None
Я не знаю, используете ли вы приложение для администрирования contrib. При использовании PositiveIntegerField вместо ForeignKey поле будет отображаться с текстовым полем на сайте администратора.