python - 酥脆的表单没有填充来自主键的数据
问题描述
我有一个表格,我想从另一个页面发送数据。数据肯定会发送,因为我有一个基于 FK 填充的测试模板标签,但表单本身不会填充数据。
模型.py
class Project(models.Model):
curr_choices = (
('USD', 'USD'),
('GBP', 'GBP'),
('EUR', 'EUR'),
)
production_title = models.CharField(max_length=200, unique=True)
budget = models.FloatField()
currency = models.CharField(max_length=3, choices=curr_choices, default='USD')
distributor = models.CharField(max_length=200)
image = models.ImageField(null=True, blank=True, upload_to="static/images")
proj_media = models.CharField(max_length=200)
licencee = models.CharField(max_length=200)
rating = models.CharField(max_length=20)
release_date = models.DateField()
synopsis = models.TextField()
term = models.CharField(max_length=20)
territory = models.CharField(max_length=20)
writer_spot = models.CharField(max_length=200)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.production_title
视图.py
def update_project(request, pk):
update = Project.objects.get(id=pk)
if request.method == "POST":
form = ProjectForm(request.POST, request.FILES, instance=update)
if form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
instance.save()
return redirect('projects')
else:
form = ProjectForm()
context = {
'form': form,
'update': update
}
return render(request, "projectsync/create_project.html", context)
表格.py
class ProjectForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(
PrependedText('production_title', "", placeholder="Example Title"),
PrependedText('licencee', "", placeholder="Example Licencee"),
PrependedText('distributor', "", placeholder="Example Distributor"),
PrependedText('writer_spot', "", placeholder="Example Writer of Spot"),
PrependedText('synopsis', "", placeholder="Example Synopsis"),
Row(
Column('currency', css_class='form-group col-md-2 mb-0'),
Column(PrependedAppendedText('budget', "", '.00'), css_class='form-group col-md-10 mb-0'),
css_class='form-row'
),
Row(
Column(PrependedText('term', "", placeholder="Perpetuity"), css_class='form-group col-md-6 mb-0'),
Column(PrependedText('proj_media', "", placeholder="TV"), css_class='form-group col-md-4 mb-0'),
Column(PrependedText('rating', "", placeholder="PG-13"), css_class='form-group col-md-2 mb-0'),
css_class='form-row'
),
Row(
Column(PrependedText('release_date', "", placeholder="DD/MM/YYYY"), css_class='form-group col-md-4 mb-0'),
Column(PrependedText('territory', "", placeholder="Worldwide"), css_class='form-group col-md-4 mb-0'),
Column('image', css_class='form-group col-md-4 mb-0'),
css_class='form-row'
),
Submit('submit', 'Create')
)
class Meta:
model = Project
fields = (
'production_title',
'licencee',
'distributor',
'writer_spot',
'synopsis',
'budget',
'currency',
'term',
'proj_media',
'rating',
'release_date',
'territory',
'image')
labels = {
'proj_media':'Media'
}
html - 模板标签 {{update.production_title}} 正在填充,但 {{crispy form}} 未填充
{% extends 'projectsync/base.html' %}
{% load crispy_forms_tags %}
{% block title%}
Create Project
{% endblock %}
{% block content %}
<div class="container-fluid">
<!-- Page Heading -->
<h1 class="h3 mb-2 text-gray-800">New Project {{update.production_title}}</h1>
<br>
<div class="card shadow mb-4">
<div class="card-body">
{% csrf_token %}
{% crispy form %}
</div>
</div>
</div>
</br>
</br>
{% endblock %}
似乎无法弄清楚我哪里出错了。
谢谢!
解决方案
在您的 HTML 模板中,它是 {{ form|crispy }}
推荐阅读
- string - “String”类型不是 Flutter 中“Item”类型的子类型
- python - 从文件文本转换比特币私钥 - 逐行
- angular - 带有 *ngFor ARIA 标签的 Angular Material mat-option 在 Lighthouse 失败
- javascript - 树视图中的 React.js 搜索过滤器
- flyway - 有没有办法先执行可重复的飞行脚本?
- arrays - 在Kotlin中除以数组的大小,但我得到零,甚至数组的大小等于1或更多
- typescript - 考虑到它的值将在以后动态分配,如何正确初始化类的属性?
- api - 如何通过 API 在 Wikimedia Commons 中搜索图片说明?
- azure-web-app-service - 如何保护 Azure 预生产 Web 应用程序
- android - 如何在本机反应中改变布局方向?