Как получить доступ к записи только от имени пользователя? - PullRequest
0 голосов
/ 28 декабря 2018

Я пишу модели, и я хочу получить доступ к сообщению от имени пользователя непосредственно в представлениях Django.Является ли это возможным?Файл models.py выглядит следующим образом: -

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.utils import timezone

#this is how profile of a sample user, say MAX looks like
class Profile(models.Model):
    Follwers=models.IntegerField(default='0')
 user=models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True)
    bio=models.TextField(max_length=120,blank=True)
    location=models.CharField(max_length=30,blank=True)
    birth_date=models.DateField(null=True,blank=True)
    verified=models.BooleanField(default=False)
 ProfilePic=models.ImageField(upload_to='UserAvatar',blank=True,null=True)

    def __str__(self):
        return self.user.username

@receiver(post_save,sender=User)
def update_user_profile(sender,instance,created,**kwargs):
    if created:
        Profile.objects.create(user=instance)
    instance.profile.save() 

class post(models.Model):
    Profile=models.ForeignKey(Profile,on_delete=models.CASCADE)
    Picture=models.ImageField(upload_to='PostMedia',blank=True,null=True)
    DatePosted=models.DateTimeField(default=timezone.now)
    Content=models.TextField(blank=True,null=True)

    def __str__(self):
        return self.Profile.user.username

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете добавить это к просмотрам,

def get_queryset(self):
    return post.objects.filter(Profile__user__username=self.kwargs['username'])

Изменить его в соответствии с вашими kwargs, именем пользователя или pk.

...