Django две колонки или составной внешний ключ в модели - PullRequest
0 голосов
/ 21 февраля 2020

Как я могу объявить составное ограничение как эта схема в Django 3 модели?

Я пытался объявить внешний и первичный ключ, как это:

class DiAttribute(models.Model):
    attribute_name = models.CharField(max_length=80, blank=True, null=True)
    attribute_id = models.IntegerField(max_length=10, blank=False, null=False, unique=True, related_name='attribute_id')
    object_type_id = models.CharField(max_length=50, blank=False, null=False, unique=True, related_name='object_type_id') 

    class Meta:
        managed = False
        unique_together = (('object_id', 'attribute_no'),)
        db_table = 'di_attribute'


class Attribute(models.Model):
    object_id = models.ForeignKey(RpObject, on_delete=models.DO_NOTHING, db_column='object_id')
    attribute_no = models.IntegerField(max_length=10, blank=False, null=False)
    attribute_id = models.ForeignKey(DiAttribute, on_delete=models.DO_NOTHING, db_column='attribute_id', to_field='attribute_id', unique=True, related_name='attribute_id')
    object_type_id = models.ForeignKey(DiAttribute, on_delete=models.DO_NOTHING, db_column='object_type_id', to_field='object_type_id', unique=True, related_name='object_type_id')

    class Meta:
        managed = False
        unique_together = (('object_id', 'attribute_no'),)
        db_table = 'attribute'

но это не работает

1 Ответ

0 голосов
/ 21 февраля 2020

Можете ли вы попробовать on_delete = models.CASCADE

Я получаю эту ошибку долгое время go, я скомпилировал следующий код и работал

color1 = models.ForeignKey(color, verbose_name="Renk 1", related_name="renk1renk",on_delete=models.CASCADE)
color2 = models.ForeignKey(color, verbose_name="Renk 2", related_name="renk2renk",on_delete=models.CASCADE,blank=True,null=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...