我想创建一个包含额外字段的表单:
这是常规表单的models.py:
精品店:
class Boutique(models.Model):
name = models.CharField(max_length=250)
user = models.ForeignKey(User, default=1)
logo = models.FileField(max_length=250)
def __str__(self):
return self.name
form.py:
class BoutiqueForm(forms.ModelForm):
class Meta:
model = Boutique
fields = ['name', 'logo']
Views.py:
def create_boutique(request):
if not request.user.is_authenticated():
return render(request, 'produit/login.html')
else:
form = BoutiqueForm(request.POST or None, request.FILES or None)
if form.is_valid():
boutique = form.save(commit=False)
boutique.user = request.user
boutique.logo = request.FILES['logo']
file_type = boutique.logo.url.split('.')[-1]
file_type = file_type.lower()
if file_type not in IMAGE_FILE_TYPES:
context = {
'boutique': boutique,
'form': form,
'error_message': 'Image file must be PNG, JPG, or JPEG',
}
return render(request, 'produit/create_boutique.html', context)
boutique.save()
return render(request, 'produit/detail.html', {'boutique': boutique})
context = {
"form": form,
}
return render(request, 'produit/create_boutique.html', context)
form_template.html:
{% for field in form %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<span class="text-danger small">{{ field.errors }}</span>
</div>
<label class="control-label col-sm-2">{{ field.label_tag}}</label>
<div class="col-sm-10">{{ field }}</div>
</div>{% endfor %}
我想添加一个表boutique_commerçant,其中包含2个额外字段facebook_link和entreprise ...出现在create_boutique.html中的新注册用户只有一次......
答案 0 :(得分:0)
您可以添加一个额外的字段,默认为False,如果保存了两个字段,则设置为True。这样,您可以检查信息是否存在,并且仅在不显示时显示表单。