Задать вопрос
@anapty-xy

Не могу получить данные из связаной модели ManyToMany rel?

модель

class user_info(models.Model):
    class SexChoises(models.TextChoices):
        male = 'М', ('male')
        female = 'Ж', ('female')
        default = '-', ('default')   

    user_id = models.OneToOneField(User, on_delete=models.CASCADE)
    sex = models.CharField(max_length=1, choices=SexChoises, default=SexChoises.default)
    birthd = models.DateField(blank=True, null=True)
    photo = models.ImageField(upload_to='user_images/', blank=True, null=True)
    preview = models.TextField(blank=True)
    friends = models.ManyToManyField(User, related_name='friends')


>>> user = User.objects.get(username='admin')
>>> user.friends.all()  
<QuerySet []>

такой запрос выдает пустой queryset

>>> a = user_info.objects.get(user_id=user)
>>> a.friends.all()
<QuerySet [<User: user>, <User: user1>, <User: admin_acc>, <User: userwdwd>]>


так вытаскивается, то что нужно
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Ну так related будет на user_info, которых скорее всего у этих юзеров нет. Я бы тут скорее на 'self' связь сделал и поле с OneToOneField выставил бы primary_key

Так же называй нормально, UserInfo а не user_info, а лучше Profile, ссылки на другим модели принято называть без _id, т.е. user, а не user_id, лучше полный birthday, ну или хотя бы birth, а не огрызок birthd, для sex лучше null=True, чем такой default
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы