确定。我想创建一个从模型A更改图像的应用程序,并将其保存为模型B中的新图像。在模板中的表单上,我希望选择可见图像。我该怎么办?
模型和表格A
模型
from django.db import models
class Photo(models.Model):
photo = models.ImageField(blank=True, null=True)
形式
from django import forms
from .models import Photo
class Photoform(forms.ModelForm):
photo = forms.ImageField(required=True)
class Meta:
model = Photo
fields = ('photo',)
模型和表格B
模型
from django.db import models
class Meme(models.Model):
meme = models.ImageField(blank=True, null=True)
形式
from django import forms
from Uploader.models import Photo
class Memeform(forms.Form):
meme = forms.ModelChoiceField(Photo.objects.all(), widget=forms.RadioSelect)
class Meta:
model = Photo
fields = ('meme',)
模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method= "post" enctype="multipart/form-data">
<p>
<h2>Your image here</h2>
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Create</button>
</p>
</form>
</body>
</html>
现在我有小部件RadioSelect,但我需要看到可供选择的图像。
答案 0 :(得分:0)
form.fields["photo"].queryset = Photo.objects.all()
。您可以在此处提及更多内容.. http://www.wkoorts.com/wkblog/2009/08/10/pre-populate-django-modelform-with-specific-queryset/
答案 1 :(得分:0)
您认为
form.fields["photo"].queryset = Photo.objects.all()
您可以参考更多。 在HTML中,您应该写下:
{% csrf_token %}
{{ form.media }}