我正在嘗試用 django 創建一個 lms。因此,我為可以上傳課程的教師設定了一個單獨的模型,并為課程設定了另一個模型。代碼如下:models.py
class teacher(models.Model):
name=models.ForeignKey(User, on_delete= models.CASCADE)
area=models.ManyToManyField(subject)
description=RichTextField()
class course(models.Model):
title=models.CharField(max_length=500)
areas=models.ManyToManyField(subject)
description=RichTextField()
instructor=models.ForeignKey(teacher, on_delete= models.CASCADE)
material=models.CharField(max_length=1000)
def __str__(self):
return self.title
在我的 views.py 檔案中:
instr=teacher.objects.filter(name=request.user)
data2=models.course.objects.filter(instructor__name__username=instr)
return render(request, "course/profile.html", {'datas':a, 'courses': data, 'creations':data2})
在寺廟里:
<div class="col-md-12"><label class="labels">Created Courses</label>
{% for data in creations %}
<form action="/course/" method="GET">
<div class="w3-display-container w3-col s12 m4 l4 w3-section">
<div class="card" style="width: 30rem; height: 30rem;">
<div class="card-body hover_trans_grey">
<h5 class="card-title">{{data.title}}</h5>
<h6 class='card-title'>Uploaded by {{data.instructor.name}}</h6>
<button type="submit" class="btn btn-primary w3-button" name="s" value="{{data.pk}}">Go to Course</button>
</div>
</div>
</div>
</form>
{% endfor %}
</div>
我得到錯誤:

消除此問題的方法是什么?
uj5u.com熱心網友回復:
instr是一個QuerySet你不能像你一樣直接將它添加到過濾器中。您可以使用直接獲取課程串列request.user
data2=models.course.objects.filter(instructor__name=request.user)
return render(request, "course/profile.html", {'datas':a, 'courses': data, 'creations':data2})
如果你想獲得第teacher一個,那么你必須使用get:
instr=teacher.objects.get(name=request.user)
data2=models.course.objects.filter(instructor=instr)
return render(request, "course/profile.html", {'datas':a, 'courses': data, 'creations':data2})
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/412663.html
標籤:
上一篇:Django多對多|TypeError:禁止直接分配到多對多集合的前向端。改用course_tags.set()
下一篇:AttributeError:嘗試獲取序列化程式“RegisterSerializer”上欄位“password2”的值時出現AttributeError
