我是python的新手,并尝试构建一个Django CRUD webapp。添加和删除表单工作正常但在字段中以编辑形式而不是字段的实际值,它显示def proposal_update(request, pk,template_name='proposal/proposal_form.html'):
server = get_object_or_404(Proposal, pk=pk)
form = ProposalForm(request.POST or None, instance=Proposal)
if form.is_valid():
form.save()
return redirect('list')
return render(request, template_name, {'form':form})
而不是像John Doe那样显示值。
我正在使用python 3.6和Django 1.10.6
我正在使用基于功能的方法。所以在我的views.py中,我有以下内容:
def get_absolute_url(self):
return reverse('proposal_edit', kwargs={'pk': self.pk})
在我的models.py中,我有以下内容:
urlpatterns=[
url(r'^delete/(?P<pk>\d+)$', views.ProposalDelete.as_view(),name='proposal_delete'),
url(r'^new$', views.proposal_create, name='proposal_new'),
url(r'^edit/(?P<pk>\d+)$', views.proposal_update, name='proposal_edit'),
]
在我的urls.py中我有:
int color1 = 0xDDfbc2ba;
int color2 = 0xDD7a6c3e;
int mixColor = mixTwoColors(color1,color2,0.5f);
public static int mixTwoColors( int color1, int color2, float amount )
{
final byte ALPHA_CHANNEL = 24;
final byte RED_CHANNEL = 16;
final byte GREEN_CHANNEL = 8;
final byte BLUE_CHANNEL = 0;
final float inverseAmount = 1.0f - amount;
int a = ((int)(((float)(color1 >> ALPHA_CHANNEL & 0xff )*amount) +
((float)(color2 >> ALPHA_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int r = ((int)(((float)(color1 >> RED_CHANNEL & 0xff )*amount) +
((float)(color2 >> RED_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int g = ((int)(((float)(color1 >> GREEN_CHANNEL & 0xff )*amount) +
((float)(color2 >> GREEN_CHANNEL & 0xff )*inverseAmount))) & 0xff;
int b = ((int)(((float)(color1 & 0xff )*amount) +
((float)(color2 & 0xff )*inverseAmount))) & 0xff;
return a << ALPHA_CHANNEL | r << RED_CHANNEL | g << GREEN_CHANNEL | b << BLUE_CHANNEL;
}
答案 0 :(得分:1)
我希望你的意思是使用实例server
而不是类Proposal作为实例值。
form = ProposalForm(request.POST or None, instance=server)
答案 1 :(得分:0)
使用initial
关键字填充表单。也许这条线上的东西可能会有所帮助。
def proposal_update(request, pk,template_name='proposal/proposal_form.html'):
server = get_object_or_404(Proposal, pk=pk)
data = {'template_field_name': model_field_name}
form = MyForm(initial=data)
if form.is_valid():
form.save()
return redirect('list')
return render(request, template_name, {'form':form})