Django DRF Model не показывает внешние ключи в панели администратора
В моем Django-приложении есть модель для просмотра. Эта модель имеет два внешних ключа к моделям продукта и пользователя. Но когда я захожу в панель администратора и пытаюсь добавить новый обзор, я не вижу выпадающего списка моделей обзора для выбора внешних ключей.
Я ожидаю, что поля внешних ключей будут отображаться в моей панели администратора в виде выпадающего списка, как в синем поле на картинке ниже.
Скриншот страницы добавления нового заказа из панели администратора
Но в панели администратора эти поля не отображаются. Она показывает только поля имени, рейтинга и комментария.
введите описание изображения здесь
Вот моя обзорная модель.
class Reviews(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True),
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True),
name = models.CharField(max_length=350, null=True, blank=True)
rating = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True, default=0)
comment = models.TextField(null=True, blank=True)
createdAt = models.DateTimeField
_id = models.AutoField(primary_key=True, editable=False)
def __str__(self):
return str(self.rating)
В вашей модели Reviews
вы поставили запятую в конце полей users
и product
. Уберите запятую в конце, так как при наличии запятой поля рассматриваются как кортеж.
Должно быть:
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
Кроме того, ваше поле createdAt
некорректно.
Должно быть:
createdAt = models.DateTimeField()
Попробуйте так, я удалил запятую из поля user и product в конце, также я добавил () в DateTimeField
class Reviews(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
name = models.CharField(max_length=350, null=True, blank=True)
rating = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True, default=0)
comment = models.TextField(null=True, blank=True)
createdAt = models.DateTimeField()