我有一个UserPost列表视图,它是特定用户帖子的视图。我正在循环显示该特定用户的帖子,但是我想添加该用户的个人资料详细信息(例如个人资料图像)和其他详细信息(例如电子邮件)。
因此,我不确定如何以设计者(而非登录用户)的身份添加用户帖子名称的用户详细信息。
我可以在每个循环发布的帖子中添加用户/设计者详细信息,但是我不希望在每个帖子中都重复它,我只希望它像{{ view.kwargs.username }}
一样出现一次,因为此页面仅针对此页面用户/设计师
这是模型。py
class Post(models.Model):
designer = models.ForeignKey(User, on_delete=models.CASCADE, related_name="post")
title = models.CharField(max_length=100, unique=True)
这是与每个用户相关的个人资料模型
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
first_name = forms.CharField()
last_name = forms.CharField()
class Meta:
model = User
fields = ['username', 'first_name', 'last_name',
'email']
这是userpostlist的视图,该视图由特定用户/设计者而非登录用户过滤
class UserPostListView(ListView):
model = Post
template_name = "user_posts.html"
context_object_name = 'posts'
queryset = Post.objects.filter(admin_approved=True)
paginate_by = 6
def get_queryset(self):
user = get_object_or_404(User, username=self.kwargs.get('username'))
return Post.objects.filter(designer=user, admin_approved=True).order_by('-date_posted')
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
has_items = Item.objects.filter(designer__username=self.kwargs['username']).exists()
context['has_items'] = has_items
return context
这是模板
{% if has_items %}
<h1 class="display-4">Hello, this is {{ view.kwargs.username }} </h1>
<img class="profile_image" src={{ designer.profile.image.url }}> <----------- I want it to appear
{{ designer.email }}<----------- I want it to appear
{% else %}
Show nothing
{% endif %}
{% for post in posts %}
Post details
{% endfor %}
答案 0 :(得分:1)
您可以将其添加到上下文中:
object SS extends Sub1 with Sub2 {
override type A >: (String, String) <: Product with Serializable
}