Есть ли способ сделать внешний ключ из атрибута в другой из другого класса в django? - PullRequest
0 голосов
/ 30 марта 2020
class Assignatura(models.Model):

    """docstring for Assignatura"""

    nom = models.CharField(max_length = 40)

    codi = models.IntegerField()

    any_academic = models.CharField(max_length = 7)



class Matricula(models.Model):

    """docstring for Matricula"""

    nia_alumne = models.ForeignKey(Alumne, null = False,  on_delete=models.CASCADE, verbose_name = 'Nom alumfne')

    codi_assignatura = models.ForeignKey(Assignatura, null = False, on_delete=models.CASCADE)

    any_academic = models.CharField(max_length = 7)

    image = models.ImageField(upload_to="matriculas", null=True)

Хочу, чтобы codi_assignatura получала только коди от Assignatura

1 Ответ

1 голос
/ 30 марта 2020

Вы можете сделать поле code уникальным Assignatura:

class Assignatura(models.Model):
    """docstring for Assignatura"""
    nom = models.CharField(max_length=40)
    codi = models.IntegerField(<b>unique=True</b>)
    any_academic = models.CharField(max_length=7)

Если целевое поле уникально, вы можете указать to_field=&hellip; параметр [Django -doc] в ForeignKey:

class Matricula(models.Model):
    """docstring for Matricula"""
    nia_alumne = models.ForeignKey(Alumne, null=False, on_delete=models.CASCADE, verbose_name='Nom alumfne')
    codi_assignatura = models.ForeignKey(Assignatura<b>, to_field='codi'</b>, null=False, on_delete=models.CASCADE)
    any_academic = models.CharField(max_length=7)
    image = models.ImageField(upload_to="matriculas", null=True)

Теперь в поле codi_assignatura<b>_id</b> будет храниться code из Assignatura, к которому оно относится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...