Отношения по внешнему ключу возвращают ошибку AttributeError при запросе в Django
Здравствуйте, пожалуйста, я новичок в Django, у меня есть дочерняя модель (отношения), ссылающаяся на родительскую модель (профиль) через внешний ключ. Я хочу получить статус отношений конкретного профиля, например, запросить его из обратной последовательности. Вот код.
from django.db import models
from django.contrib.auth.models import User
#Create your models here.
class Profile(models.Model):
user = models.OneToOneField (User, on_delete= models.CASCADE)
prof_pics = models.ImageField (null = True, blank = True, upload_to = 'images/')
friends = models.ManyToManyField (User, blank=True, related_name="friend" )
bio = models.TextField(blank=True)
def__str__(self):
return str(self.user)
STATUS CHOICES = (
("accept", "accept"),
("send","send"),
)
def ___str__(self):
return str(self.user)
class Relationship(models.Model):
sender = models.Foreignkey(Profile, on_delete = models.CASCADE, null=True, related_name = "senders")
date_created = models.DateTimeField(auto_now_add= True)
receiver = models.ForeignKey(Profile, on_delete= models.CASCADE, null= True, related_name= 'receivers')
status = models.Charfield(max_length=10, choices= STATUS_CHOICES)
def_str_(self):
return f"{self.sender}-{self.receiver}-{self.status}"
Запрос, который я выполнил в своем представлении, чтобы получить отношения конкретного профиля, поскольку я видел учебник, который делал то же самое с аналогичными моделями.
#imported necessary dependencies
def relationship_view(request):
idd = request.user.id
profiles =Profile.objects.get(id=idd)
rel=profiles.relationship_set.all()
Print(rel)
return render(request, "profiles/relationship_query.html", {})
Ошибка, которую я получаю при запуске собственного представления
File "C:\Users\semper\djangotry\twitterclone\profiles\views.py", line 96, in Relationship_view
rel = profiles.relationship_set.all()
AttributeError: 'Profile object has no attribute 'relationship_set"
Вы установили поля related_name как senders и receivers в модели Relationship, поэтому вам нужно использовать их.
def relationship_view(request):
idd = request.user.id
profile = Profile.objects.get(id=idd)
# you can get receivers from you and get senders to you.
receiver_relationship = profile.senders.all()
sender_relationship = profile.receivers.all()
...