如何获取类型“的值?”;textinput";作为django';什么是模型?
目标: 电路板上的数据有一个标签。要更新和保存标记,“forms.py”必须首先使用modelform获取数据 问题: 我试图使用“value\u from\u datadict”获取dict类型的数据。 modelform类无法访问它。 “打印消息”被放入“来自数据目录的值”中进行确认,但未显示如何获取类型“的值?”;textinput";作为django';什么是模型?,django,django-models,django-views,django-forms,modelform,Django,Django Models,Django Views,Django Forms,Modelform,目标: 电路板上的数据有一个标签。要更新和保存标记,“forms.py”必须首先使用modelform获取数据 问题: 我试图使用“value\u from\u datadict”获取dict类型的数据。 modelform类无法访问它。 “打印消息”被放入“来自数据目录的值”中进行确认,但未显示 # forms.py class ManyToManyInput(forms.TextInput): def value_from_datadict(self, data, files, nam
# forms.py
class ManyToManyInput(forms.TextInput):
def value_from_datadict(self, data, files, name):
print("value_from_datadict inside")
value = data.get(name)
if value:
return value.split(",")
class BoardUpdateForm(forms.ModelForm):
class Meta:
model = Board
fields = ["title", "contents", "tags"]
# fields = "__all__"
labels = {
"title": ("title"),
"contents": ("contents"),
"tags": ("tag"),
}
widgets = {
"contents": forms.Textarea(attrs={"cols": 80, "rows": 20}),
"tags": ManyToManyInput().value_from_datadict(),
}
help_texts = {}
error_messages = {
"title": {
"required": ("Please enter the title."),
},
"contents": {
"required": ("Please enter your content."),
},
}
为了使用更新表单,我使用“实例”选项发送数据,如以下源代码所示
# view.py
def board_update(request, pk):
try:
board = Board.objects.get(pk=pk)
except Board.DoesNotExist:
raise Http404("There are no board data")
if request.method == "POST":
form = BoardUpdateForm(request.POST)
if form.is_valid():
print("inside is_valid")
user_id = request.session.get("user")
usert = Usert.objects.get(pk=user_id)
tags = form.cleaned_data["tags"].split(",")
board.title = form.cleaned_data["title"]
board.contents = form.cleaned_data["contents"]
board.writer = usert
board.save()
print("board :", board)
for tag in tags:
if not tag:
continue
_tag, _ = Tag.objects.get_or_create(name=tag)
board.tags.add(_tag)
print("board.tags :", board.tags)
return redirect("board_detail", pk=pk)
form = BoardUpdateForm(instance=board)
print("form : ", form)
print("form['tags'].value() : ", form["tags"].value())
return render(request, "board_update.html", {"form": form, "board": board})
我想知道