Django ForeignKey, который не требует ссылочной целостности?

I ' Я хотел бы установить поле ForeignKey в модели django, которое иногда указывает на другую таблицу. Но я хочу, чтобы все было в порядке, чтобы вставить идентификатор в это поле, которое ссылается на запись в другой таблице, которая может отсутствовать. Поэтому, если строка существует в другой таблице, я хотел бы получить все преимущества отношения ForeignKey. Но если нет, я бы хотел, чтобы это воспринималось как число.

Возможно ли это? Для этого ли нужны Родовые отношения?

9
задан Leopd 29 September 2010 в 18:36
поделиться

1 ответ

Я новичок в 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 поле будет отображаться с текстовым полем на сайте администратора.

3
ответ дан 4 December 2019 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: