Как получить данные от 2 разных моделей в Django - PullRequest
0 голосов
/ 02 мая 2020

Я новичок в этом, пытаюсь научиться новым django и python трюкам

Я делаю проект, где авторы могут загрузить дизайн, имя этого приложения - "оценка", где есть model.py как показано ниже:

оценка приложения model.py

class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    design = models.ImageField(
        blank=False, null=True, upload_to='')

У меня также есть другое приложение, которое называется «ядро», где есть модель Item. Я хочу, чтобы администратор мог вручную выбрать имя автора, и при следующем выборе дизайна я получу только его загруженные проекты.

Я знаю, что мне нужно сделать выбор по выбору

вот основное приложение model.py

class Item(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField()
    design= models.ImageField()

1 Ответ

0 голосов
/ 02 мая 2020

Вам необходимо использовать внешние ключи для поддержания отношений между элементами и пользователями. Таким образом, в классе Item это будет:

author = models.ForeignKey(User, on_delete=models.CASCADE)

и для получения всех дизайнов или предметов автора вы можете использовать:

user.design_set.all()

или

Design.objects.filter(author.id=request.user.id)

или для своего внешнего ключа вы можете установить значение related_name, такое как элементы, чтобы ваш код был: author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='items')

, и вы можете получить все элементы для автора:

user.items.all() in python и user.items.all в шаблоне Django.

Для получения дополнительной информации об отношениях и внешнем ключе посетите:

https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_one/

Надеюсь, это поможет!

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