Python django查询以从用户处获取帖子,后跟一个用户
我的模型:Python django查询以从用户处获取帖子,后跟一个用户,python,django,django-queryset,Python,Django,Django Queryset,我的模型: class ClientProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, related_name='client_profile') follows = models.ManyToManyField(User, related_name='follows',blank=True) profile_picture
class ClientProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, related_name='client_profile')
follows = models.ManyToManyField(User,
related_name='follows',blank=True)
profile_picture = models.ImageField( blank=True)
phone_regex = RegexValidator(
regex=r'^\+?1?\d{9,15}$',
message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed."
)
mobile_number = models.CharField(validators=[phone_regex],
max_length=17, blank=True)
dob = models.DateField(auto_now = False, null = True)
profile_summary = models.TextField()
my_career_objective = models.TextField()
educational_qualification = models.CharField(max_length=200)
work_experience = models.IntegerField(blank=True, null=True)
skill_set = models.TextField(blank=True)
address_1 = models.CharField(max_length=300,blank=True)
address_2 = models.CharField(max_length=300,blank=True)
# new fileds
about_me = models.TextField(blank=True)
birthplace = models.CharField(max_length=150,blank=True)
lives_in = models.CharField(max_length=150,blank=True)
occupation = models.CharField(max_length=150, blank=True)
gender = models.CharField(choices=GENDER_CHOICES,max_length=150, blank=True)
marital_status = models.CharField(choices=MARITAL_CHOICES,max_length=150, blank=True,default=1)
religion = models.CharField(max_length=150, blank=True)
political_incline = models.TextField(blank=True)
# other_social_networks = models.TextField(blank=True)
hobbies = models.TextField(blank=True)
favorite_tv_shows = models.TextField(blank=True)
favorite_movies = models.TextField(blank=True)
favorite_games = models.TextField(blank=True)
favorite_music_band_artists = models.TextField("Favorite Music, Bands / Artists", blank=True)
favorite_books = models.TextField(blank=True)
favorite_writers = models.TextField(blank=True)
other_interests = models.TextField(blank=True)
subscription = models.TextField(blank=True, null=True, default="Free")
def __str__(self):
return str(self.user.first_name) + " " + str(self.user.last_name)
class Task(models.Model):
level = models.ForeignKey(Level, on_delete=models.CASCADE)
todo = models.ForeignKey(ToDo, on_delete=models.CASCADE)
student = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=150)
content = models.TextField()
timestamp = models.TimeField(auto_now=True)
datestamp = models.DateField( auto_now=True)
like = models.ManyToManyField(User,related_name='user_likes',blank=True)
is_verified=models.BooleanField(default=False,blank=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('student:dashboard')
objects = PostManager()
@property
def comments(self):
instance = self
qs = Comment.objects.filter_by_instance(instance)
return qs
@property
def get_content_type(self):
instance = self
content_type =
ContentType.objects.get_for_model(instance.__class__)
return content_type
我想显示登录用户的所有任务,以及所有用户的所有任务,后跟登录用户。实现这一点的最佳django查询是什么?ClientProfile模型中的Followers字段被指定为多对多字段,用于描述用户跟随的所有用户。如何使用“or”编写django查询。每个任务通过外键“student”指向一个用户。我想在主页中显示登录用户的所有任务,然后显示登录用户的所有任务在任务的
student
字段中放置一个相关的\u name属性。(我们称之为任务
)
如果登录用户是您的登录用户对象,则logged\u-in\u-user.task
将给出登录用户的任务和用户的追随者任务:
tasks = Task.objects.filter(student__in= logged_in_user.follows.all())
没有相关的名字
task = Task.objects.filter(Q(student=logged_in_user) | Q(student__in=logged_in_user.follows.all()))
这对我很有用:
client=ClientProfile.objects.get(user=request.user)
task = Task.objects.filter
(Q(student=request.user) |
Q(student__in=client.follows.all()))
.order_by('timestamp').prefetch_related('images_set')
你试过任何疑问吗?结果如何?使用outputs.task=task.objects.filter(Q(student=request.user)| Q(student=request.user.client_profile.follows)).order_by('timestamp').prefetch_related('images_set')……这不起作用。。错误:'ManyRelatedManager'对象不可编辑@AravindI已尝试此查询:client=ClientProfile.objects.get(user=request.user)task=task.objects.filter(Q(student=request.user)| Q(student=client.follows.all()).order_by('timestamp').prefetch_相关('images\u set')@MohitHarshan
client.follows.all()
您缺少括号。@MohitHarshan如果有帮助,请将其标记为已回答的
。它仍显示在未回答类别中。