- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 django 和 python 都很陌生,在我的应用程序中我有两个模型,一个是 MyProfile
一个是 MyPost
,用户将有一个配置文件和用户可以创建帖子,一切正常,但我想在用户的个人资料中显示用户创建的帖子。为此,我尝试在我的通用 Detailview
中创建一个 get_context_data
。但它给了我这个错误 Cannot query "ahmy": Must be "MyProfile"instance
。 ahmy 是我的登录用户名。
我的模型
from django.db import models
from django.contrib.auth.models import User
from django.db.models.deletion import CASCADE
from django.core.validators import MinValueValidator, RegexValidator
# Create your models here.
class MyProfile(models.Model):
name = models.CharField(max_length = 500)
user = models.OneToOneField(to=User, on_delete=CASCADE)
address = models.TextField(null=True, blank=True)
gender = models.CharField(max_length=20, default="Male", choices=(("Male", 'Male'), ("Female", "Female"), ("LGBTQ", "LGBTQ")))
phone_no = models.CharField(validators=[RegexValidator("^0?[5-9]{1}\d{9}$")], max_length=15, null=True, blank=True)
description = models.CharField(max_length = 240, null=True, blank=True)
pic = models.ImageField(upload_to = "image\\", null=True)
def __str__(self):
return "%s" % self.user
class MyPost(models.Model):
main_pic = models.ImageField(upload_to = "image\\", null=True)
amount_spend = models.IntegerField(null=True, blank=True)
total_donars = models.IntegerField(null=True, blank=True)
title = models.CharField(max_length = 200)
body = models.TextField(null=False, blank=False)
cr_date = models.DateTimeField(auto_now_add=True)
uploaded_by = models.ForeignKey(to=MyProfile, on_delete=CASCADE, null=True, blank=True)
def __str__(self):
return "%s" % self.title
我的观点@method_decorator(login_required, name="dispatch")
class MyProfileDetailView(DetailView):
model = MyProfile
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super().get_context_data(**kwargs)
# Add in a QuerySet of all the user posts
user_posts = MyPost.objects.filter(uploaded_by=self.request.user).order_by('-cr_date')
context['user_posts'] = user_posts
context['user'] = self.request.user
return context
我的 Html 文件
{% extends 'base.html' %}
{% block content %}
<div class="p-5">
<img src="/media/{{myprofile.pic}}" />
<h1 class="myhead2">{{myprofile.name}}</h1>
<p><strong>Address: {{myprofile.address}}</strong></p>
<p><strong>Phone Number: {{myprofile.phone_no}}</strong></p>
<p><strong>Email: {{myprofile.user.email}}</strong></p>
<p><strong>About:</strong> {{myprofile.purpose}}</p>
<p><strong> Total Donation Recived: {{myprofile.donation_recived}}</strong></p>
<hr>
<table class="table my-3">
<thead class="thead-dark">
<tr>
<th>Title</th>
<th>Date</th>
<th>Action</th>
</tr>
</thead>
{% for MyPost in user_posts %}
<tr>
<td>{{MyPost.title}}</td>
<td>{{MyPost.cr_date | date:"d/m/y"}}</td>
<td>
<a class="btn btn-dark btn-sm" href='/covid/mypost/{{n1.id}}'>Read More</a>
<a class="btn btn-dark btn-sm" href='/covid/mypost/delete/{{n1.id}}'>Delete</a>
</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock %}
网址
from django.contrib import admin
from django.urls import path
from django.urls.conf import include
from covid import views
from django.views.generic.base import RedirectView
urlpatterns = [
# Normal pages
path('home/', views.HomeView.as_view()),
path('tips/', views.TipsViews.as_view()),
path('info/', views.InfoView.as_view()),
path('dashboard', views.DashboardView.as_view()),
# Choose State URL
path('chose_state', views.chose_state, name='chose_state'),
# Orginisations Profiles
path('profile/edit/<int:pk>', views.MyProfileUpdateView.as_view(success_url="/covid/home")),
path('myprofile/', views.MyProfileListView.as_view()),
path('myprofile/<int:pk>', views.MyProfileDetailView.as_view()),
# Post URL
path('mypost/create/', views.MyPostCreate.as_view(success_url="/covid/mypost")),
path('mypost/delete/<int:pk>', views.MyPostDeleteView.as_view(success_url="/covid/mypost")),
path('mypost/', views.MyPostListView.as_view()),
path('mypost/<int:pk>', views.MyPostDetailView.as_view()),
path('profile/edit/<int:pk>', views.MyProfileUpdateView.as_view(success_url="/covid/home")),
# Root URL
path('', RedirectView.as_view(url="home/")),
]
最佳答案
uploaded_by
字段指的是 MyProfile
模型,而不是 User
模型。您可以将查询更改为:
user_posts = MyPost.objects.filter(
<b>uploaded_by__user=self.request.user</b>
).order_by('-cr_date')
因此,通过使用双下划线 (__
),我们“看穿”了一个关系,因此我们寻找 MyPost
对象,其中 uploaded_by
是一个 MyProfile
,作为 user
是对 request.user
对象的引用。
如果要显示路径中带有pk
的用户的内容:
path('myprofile/<int:pk>', views.MyProfileDetailView.as_view()),
您可以将其替换为:
user_posts = MyPost.objects.filter(
<b>uploaded_by_id=self.kwargs['pk']</b>
).order_by('-cr_date')
给定 pk
是 profile id;或者:
user_posts = MyPost.objects.filter(
<b>uploaded_by__user_id=self.kwargs['pk']</b>
).order_by('-cr_date')
如果 pk
指的是 user id。
或者你可以使用self.object
:
user_posts = self.object<b>.mypost_set.order_by('-cr_date')</b>
关于django - 无法查询 "": Must be "" instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61428148/
我正在尝试查找first_row = [1, 2, 3, 4, ...] 目前,我有 list = [[1, a], [2, b], [3, c], [4, d], ...] 并尝试运行:list[:
我正在尝试查找first_row = [1, 2, 3, 4, ...] 目前,我有 list = [[1, a], [2, b], [3, c], [4, d], ...] 并尝试运行:list[:
我正在尝试构建一个应用程序以提交到 AppStore.. 每次我尝试构建它时,我都会在验证期间收到一条警告: The dwarfdump binary must exist and must be e
我正在关注这个“ Hello World ”教程: https://steemit.com/eos/@skenan/eos-development-for-beginners-webassembly
所以有点背景。我一直在尝试在 CentOS 6 机器上设置 Hive。我按照这个 Youtube 视频的说明操作:http://www.youtube.com/watch?v=L2lSrHsRpOI
我是 graphQL 新手,我正在尝试在后端的resolvers.js 文件下更新用户配置文件密码,但我已经坚持了一段时间,并且不断收到相同的错误消息。 resolvers.js updatePass
我有一个程序正在使用用户指定的测量值来计算矩形的面积。出于特定原因,我正在使用一个类来执行此操作,但是我的编译器会生成两个错误... expression must have class type l
在处理数据结构类的图类时,我遇到了边缘对象问题: myGraph.nodes[a]->edges.back.n1 = myGraph.nodes[a]; myGraph
我正在将此方法添加到公共(public)静态类 public static LogMessage(Exception ex) { Trace.WriteLine(ex.
我经常用 Cache-Control: no-cache 或 Cache-Control: max-age=0 规范说must-revalidate是为了max-stale...(服务器问题max-s
每当从列出的类中运行下面的行时,我在版本 2017.2.0f3 和 2017.2.1f1 中遇到此错误,但它在 5.5.0.f3 中完美运行 WWW request = new WWW(m_host,
我已经在我的 Ubuntu EC2 实例上安装了 Hadoop,并按照本教程完成了安装 hive 的所有步骤:http://www.tutorialspoint.com/hive/hive_insta
您好,在此先感谢您的帮助! 当我尝试执行从 GitHub 提取的时间序列分解时,出现ValueError: You must specify a period or x must be a panda
为了寻求有关问题的建议和帮助,我在运行 Xubuntu Linux 16.04 LTS 的笔记本电脑上新安装了 Oracle XE。我关注了this发布我的安装。 在 Oracle XE 安装位置 /
当通过 AD 帐户登录时,我在尝试在 C# MVC Web 应用程序中加载 p12 证书文件时遇到问题。 我们在加载证书时遇到的错误是:必须信任计算机才能进行委托(delegate),并且当前用户帐户
我想使用 IOptions 通过 POCO 获取配置,但它会抛出错误消息“模型绑定(bind)的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数” DatabaseSettings.cs p
正确执行加法模型有一些问题。 我有那个数据框: 当我运行此代码时: import statsmodels as sm import statsmodels.api as sm decompositio
感谢有关 tutorialspoint 和 stackoverflow 的有用信息,我几乎完成了在 Oracle VirtualBox 上的 Ubuntu 上安装 Hive 3.1.1 和 Hadoo
这是我用于测试目的的简单代码。 boolean isMoving(){ if (a == b) { return true; } else if (a != b) {
如果我的模型中有这样的属性: [BindProperty] public IPagedList Products { get; set; } 然后当我尝试发布时,我收到此错误: An
我是一名优秀的程序员,十分优秀!