Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:如何将数据保存到ManyToManyField_Django_Many To Many - Fatal编程技术网

Django:如何将数据保存到ManyToManyField

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)

你的帮助对我很好。以下是代码:

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)
    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)