【发布时间】:2021-09-19 01:25:06
【问题描述】:
如果我创建模型名称数学,我会创建两个模型名称主题和部分数学只链接与数学有关的部分打开没有其他部分打开我想你明白了所以这是我的代码 我的模型.py
class Subject(models.Model):
name = models.CharField(max_length=80, blank=False,)
thumbnail = models.ImageField(upload_to='subject thumbnail', blank = False)
total_Section = models.FloatField(default='0')
joined_date = models.DateTimeField(default=timezone.now,editable=False)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Section(models.Model):
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
sub_section = models.CharField(max_length=500, blank=True)
title = models.CharField(max_length=5000, blank=False)
teacher = models.CharField(max_length=500, blank=False)
file = models.FileField(upload_to='section_vedios', blank=False)
price = models.FloatField(blank=False)
content_duration = models.DurationField(blank=False)
joined_date = models.DateTimeField(default=timezone.now,editable=False)
update_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
主题的我的views.py
@login_required
def home(request):
subject_list = Subject.objects.all()
return render (request, 'home.html', {'subject_list': subject_list })
我的views.py 部分
@login_required
def sections(request):
return render (request, 'sections.html',)
我的 html 主题它有效
<ul>
{% for subject in subject_list %}
<li class="sub"> <a name='thumb' class="thumb" href="{% url 'subjects:section' %}"><img class="thumbnail" src="{{ subject.thumbnail.url }}" alt="">
<span><strong> {{ subject.name }} </strong> </span> </a>
<p>No of Section : {{ subject.total_section }} </p> </li>
{% endfor %}
</ul>
通过点击链接根据主题查看部分的我的 html 没有显示任何内容
<li class="sub"> <a name='thumb' class="thumb" href="#">
<span><strong> {{ subject.section.title }} </strong> </span> </a>
<p>Name: {{ subject.section.teacher }} </p> {{ subject.section.price }} </li>
</div>
我的 urls.py 用于呈现主题的主页 html
urlpatterns = [
path('Register/',views.register,name='register'),
path('', views.my_login, name='login'),
path('logout/',views.user_logout,name='logout'),
path('SectionWise/',views.home,name='home'),
path('edit-profile/',views.edit_profile,name='edit')
]
我的 urls.py 部分
urlpatterns = [
path('Section/', views.sections, name='section'),
path('add_section/',views.add_sections,name='add_section')
]
我尝试使用上述方法,例如主题,但在每个链接中,无论您单击哪个主题链接,它都会显示所有部分
按要求添加
urls.py
urlpatterns = [
path('section/<int:section_id>/', views.sections, name='section'),
path('add_section/',views.add_sections,name='add_section')
]
我的家.html
{% for subject in subject_list %}
<a href="{% url 'subjects:section' subject.section.id %}">
<div class="card" style="width: 18rem;">
<img src="{{ subject.thumbnail.url }}" class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">{{subject.id}} {{ subject.name }}</h5>
<p class="card-text">{{ subject.about }}</p>
<hr>
<p class="number" > No of Section:<strong> {{ subject.total_Section }}</strong></p>
<p class="last"> Last update:<strong> {{ subject.update_at }}</strong></p>
</div>
</div>
</a>
{% endfor %}
【问题讨论】:
-
您也需要共享您的
urls.py文件,但通常在您的视图中,您需要过滤您想要的部分并将它们附加到render调用中,就像您在home中所做的那样功能。我建议您至少阅读 django 官方教程,直到 tutorial 3,但最好是全部内容 -
我试着让我用一个例子来解释一下让我假设在主题模型中我为数学、化学、生物学等创建了一些表格,然后我在与数学、酸相关的三角形部分中创建了表格与化学有关,与生物学有关的细胞,以及我想要什么,当我点击数学时,它只显示与相关部分的三角形,而不是全部,我想你理解我的问题,简短而言,主题部分将打开,这是相关的
-
当我喜欢主页功能时,无论哪个主题相关,它都会显示所有部分
-
您需要在截面视图的 url 中将截面 id 作为参数,阅读我提到的教程,他们经历了整个事情
-
请您写下您所说的代码,因为我尝试了所有符合我的要求,是的,我读了谢谢
标签: django django-models django-views django-templates