django - 条件不适用于 Django 模板中的 2 个不同的应用程序
问题描述
我创建了一个包含 2 个应用程序的项目: 1.Core 用于在主页中查看的项目模型 2.使用帖子模型得分
home.html 主要用于列出设计师的项目,设计师/用户也可能有帖子,所以我试图为有帖子的设计师/用户显示按钮,如果用户没有帖子,则隐藏它们。
我已经添加了代码,但设计师/用户帖子的按钮仍然显示。
应用 1 号核心
核心模型.py
class Item(models.Model):
designer = models.ForeignKey(
User, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
核心视图.py
class HomeView(ListView):
model = Item
paginate_by = 12
template_name = "home.html"
ordering = ['-timestamp']
# context_object_name = 'posts' (I have commented this part as it is from Score Models
when included the home page become 404 error)
这是核心网址
urlpatterns = [
path('', HomeView.as_view(), name='home'),
App No.2 Score Score Models.py:
class Post(models.Model):
designer = models.ForeignKey(User, on_delete=models.CASCADE)
design = models.ImageField(
blank=False, null=True, upload_to=upload_design_to)
Home.html 模板
{% if post.designer %}
<a href="{% url 'score:user-posts' item.designer.username %}">
<button style="margin-top: 10px;text-transform: none;" button type="button"
class="btn btn-success btn-sm btn-block">
Check my posts</button>
</a>
{% else %}
Show Nothing
{% endif %}
我不知道现在工作的原因是什么我已经对其他模板使用了相同的逻辑,但在这次试验中没有成功
解决方案
您可以将此解决方案调整为您的项目。
模型.py:
class User(models.Model):
user = models.CharField(max_length=50)
def __str__(self):
return str(self.user)
class Item(models.Model):
designer = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
def __str__(self):
return str(self.title)
class Post(models.Model):
designer = models.ForeignKey(User, on_delete=models.CASCADE)
design = models.CharField(max_length=15, blank=False, null=True)
def __str__(self):
return str(self.design)
视图.py:
def myview(request):
msg = ''
qs1 = Item.objects.all().values_list('designer')
qs2 = Post.objects.all().values_list('designer')
for result in list(set(qs1) & set(qs2)):
msg += '<a href = "www.google.com"><button style = "margin-top: 10px;text-transform: none;" type = "button" ' \
'class ="btn btn-success btn-sm btn-block" > Check my posts : {0}</button></a><br>'.\
format(User.objects.get(pk=result[0]))
context = {'msg': msg}
return render(request, 'stack/home.html', context)
主页.html
<body>
{% autoescape off %}
{{ msg }}
{% endautoescape %}
</body>
推荐阅读
- flutter - 限制连续 ListViewBuilder 项目的数量
- python - 为什么 netCDF 数据和 ferret 中存储的值不同
- unit-testing - Is there a replacement for @autowired?
- arrays - how to access the array created from this pointer?
- request - How to interprete the Locust results
- mysql - 插入 RANK 作为列的值
- php - underline the nth word of a string based on an array in php/laravel
- android - How to LiveReload and debug Ionic/Capacitor application on Android device/emulator
- spring-boot - How set default API definition url in openapi?
- ios - Do .symbol files in IPA be downloaded to user's iPhone?