fbpx

Проблема с foreignKey

260 просмотра
0
0 Комментариев

помогите пожалуйста разобраться с ForeignKey

у меня есть модель:

class UserProfile(models.Model):
    CHOICES_status = (
        ('0', 'статус отключен'),
        ('1', 'в поиске'),
        ('2', 'в космосе'),
        ('3', 'женат'),
        ('4', 'член партии'),
    )
 
    user = models.OneToOneField(User)
    family = models.CharField(max_length=30, blank=True)
    name = models.CharField(max_length=30, blank=True)
    nation = models.CharField(max_length=30)
    status = models.CharField(max_length=30, blank=True, choices=CHOICES_status, default='0')
    avatar = models.ImageField(upload_to='userprofile/', blank=True)
    nation_show = models.BooleanField(default=True, blank=True)

она работает. проблема в том, что я хотел бы список статусов хранить не в константе CHOICES_status, а в отдельной табличке

для этого я создаю и заполняю таблицу, которой соответствует следующая модель:

class UserStatus(models.Model):
    status = models.CharField(max_length=30)

но я не понимаю как связать эти две модели(таблицы)

если делаю так:

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    family = models.CharField(max_length=30, blank=True)
    name = models.CharField(max_length=30, blank=True)
    nation = models.CharField(max_length=30)
    status = models.ForeignKey()
    avatar = models.ImageField(upload_to='userprofile/', blank=True)
    nation_show = models.BooleanField(default=True, blank=True)

, то во-первых не работает, а во-вторых непонятно где указание использовать выпадающий список

подскажите пожалуйста примером кода


Добавить комментарий

1 Ответы

Python Опубликовано 27.03.2019
0

И не должно работать 🙂

ForeignKey, если говорить просто, должен показывать что вот такое-то поле(в вашем случае status) может принимать значения из такой-то таблицы(в вашем случае UserSatatus), для этого 1м аргументом этот класс принимает таблицу, значения которой может принимать поле.

   status = models.ForeignKey(UserStatus)

Тогда в админке у вас будет как раз выпадающий список(при условии, что в таблице UserStatus есть записи).

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up