Python 无法分配"';数学'&引用;:&引用;主题分类主题“;必须是一个";“主题”;实例
所以,我的django项目有一些问题。我Python 无法分配"';数学'&引用;:&引用;主题分类主题“;必须是一个";“主题”;实例,python,django,Python,Django,所以,我的django项目有一些问题。我m想将droplist中的Subject(由名为Subject的数据库组成)分配给另一个名为SubjectClas的数据库,但我一直收到这个错误。有什么建议吗?谢谢。 无法分配“'Math'”:“SubjectClas.subject”必须是“subject”实例 我的html代码 {% block add %} <form action="{% url 'marks:addsubject' class.id%}" method="POST">
m想将droplist中的Subject(由名为Subject的数据库组成)分配给另一个名为SubjectClas的数据库,但我一直收到这个错误。有什么建议吗?谢谢。
无法分配“'Math'”:“SubjectClas.subject”必须是“subject”实例
我的html代码
{% block add %}
<form action="{% url 'marks:addsubject' class.id%}" method="POST">
{% csrf_token %}
<select required name="sub">
{% for d in subjectslist %}
<option value='{{d.id}}'>{{d.SubjectName}}</option>
{% endfor %}
</select>
<button type="submit">готово</button>
</form>
{% endblock %}
我的观点
def addsubject(request, classid):
try:
a = Class.objects.get( id = classid )
except:
raise Http404("Http404")
SubjectClas.objects.create(subject = request.POST['sub'], clas = a)
谢谢。subject
是subject
模型的外键
,因此通过传递字符串,这将不起作用
但是,您可以创建或获取主题
对象,例如:
从django.shortcuts导入重定向
从django.views.decorators.http导入需要\u http\u方法
@需要\u http\u方法(['POST'])
def addsubject(请求,classid):
主题,主题,对象,获取或创建(name=request.POST['sub'])
SubjectClas.objects.create(subject=subject\u id,clas\u id=classid)
return redirect('name-of-some-view')
subject
是指向subject
模型的外键,因此通过传递一个字符串,这将不起作用
但是,您可以创建或获取主题
对象,例如:
从django.shortcuts导入重定向
从django.views.decorators.http导入需要\u http\u方法
@需要\u http\u方法(['POST'])
def addsubject(请求,classid):
主题,主题,对象,获取或创建(name=request.POST['sub'])
SubjectClas.objects.create(subject=subject\u id,clas\u id=classid)
return redirect('name-of-some-view')
subject
是指向subject
模型的外键
,因此通过传递字符串,将无法工作。subject
是指向subject
模型的外键
,因此通过传递字符串,将无法工作。
def addsubject(request, classid):
try:
a = Class.objects.get( id = classid )
except:
raise Http404("Http404")
SubjectClas.objects.create(subject = request.POST['sub'], clas = a)
from django.shortcuts import redirect
from django.views.decorators.http import require_http_methods
@require_http_methods(['POST'])
def addsubject(request, classid):
subject, __ = Subject.objects.get_or_create(name=request.POST['sub'])
SubjectClas.objects.create(subject=subject_id, clas_id=classid)
return redirect('name-of-some-view')