Django:如何将数据保存到ManyToManyField
你的帮助对我很好。以下是代码: models.py:Django:如何将数据保存到ManyToManyField,django,many-to-many,Django,Many To Many,你的帮助对我很好。以下是代码: models.py: from django.db import models class TagModel(models.Model): tag = models.CharField(max_length=50) def __str__(self): return self.tag class MyModel(models.Model): title = models.CharField(max_length=50)
from django.db import models
class TagModel(models.Model):
tag = models.CharField(max_length=50)
def __str__(self):
return self.tag
class MyModel(models.Model):
title = models.CharField(max_length=50)
tag = models.ManyToManyField(TagModel)
forms.py:
from django import forms
from .models import *
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
fields = '__all__'
views.py:
from django.shortcuts import render, get_object_or_404, redirect
from .models import *
from .forms import *
def MyWriteView(request):
if request.method == "POST":
mywriteform = MyForm(request.POST)
if mywriteform.is_valid():
confirmform = mywriteform.save(commit=False)
confirmform.save()
return redirect('MyDetail', pk=confirmform.pk)
else:
mywriteform = MyForm()
return render(request, 'form.html', {'mywriteform': mywriteform})
html(第一次试用):
{%csrf_令牌%}
{{mywriteform}}
拯救
html(第二次试用):
{%csrf_令牌%}
{{mywriteform.title}
{mywriteform.tags%中标记列表的%s}
{{taglist}}
{%endfor%}
拯救
我正在尝试在我的帖子上添加标签。我做了一个简单的很多标签博客,但它不工作。我通过点击save按钮提交了一篇文章,标题被保存了,但是标签没有。在管理方面,它运行良好
提前谢谢。像这样更新代码
if mywriteform.is_valid():
confirmform = mywriteform.save(commit=False)
confirmform.save()
mywriteform.save_m2m()
return redirect('MyDetail', pk=confirmform.pk)
有关更多详细信息感谢您的回复。答复中的代码有错误:[AttributeError'MyModel'对象没有属性'save_m2m']。我将您的答案:[confirmform.save_m2m()]修改为[mywriteform.save_m2m()]。它工作得很好。我很感激。
<form method="post">
{% csrf_token %}
{{ mywriteform.title }}
<select name="tags" required="" id="id_tags" multiple="">
{% for taglist in mywriteform.tags %}
<option value="{{taglist.id}}">{{taglist}}</option>
{% endfor %}
</select>
<button type="submit">Save</button>
</form>
if mywriteform.is_valid():
confirmform = mywriteform.save(commit=False)
confirmform.save()
mywriteform.save_m2m()
return redirect('MyDetail', pk=confirmform.pk)