Django Forms-从URL收到的模型'id'的下拉菜单

时间:2016-08-10 18:17:58

标签: django python-2.7 django-models django-forms dropdown

我想从存储在模型中的所有数据中创建id的下拉菜单。后来我想将该id传递给我的views.py来填充我的表单进行更新。我该怎么做?

我知道我需要一些表格字段和视图,但我不知道该怎么做。我是Django的新手,所以这对我来说相对比较奇怪。任何帮助都非常有用。

models.py -

class TVchannel(models.Model):
    name = models.CharField(max_length=50, verbose_name="Name of program")
    type = models.CharField(max_length=50, verbose_name="Type of program")
    state = models.CharField(max_length=50, verbose_name="Channel state")
    price = models.IntegerField(validators=[MinValueValidator(1)], verbose_name="Price of channel")

    def __str__(self):
         return self.name<code>

views.py - 查看更新

def userUP(request, user_id):
#instance = get_object_or_404(TVchannel, id=user_id)
queryset = TVchannel.objects.filter(id=user_id)
if request.method == 'POST':

    form = TVchannelUpdateForm(request.POST)

    if form.is_valid():
        updateIt = TVchannel.objects.get(pk=id)
        form = TVchannelUpdateForm(request.POST, instance = updateIt)
        form.save()
        return HttpResponseRedirect('/')

else:
    updateIt = TVchannel.objects.get(pk = id)
    form = TVchannelUpdateForm(insance = updateIt)

return render_to_response('app/updateTVchannel.html', {'form': form}, context_instance=RequestContext(request))<code>

forms.py - 用于更新的表单

class TVchannelUpdateForm(ModelForm):
    class Meta:
         model = TVchannel
         fields = ['name', 'type', 'state', 'price]

1 个答案:

答案 0 :(得分:0)

django form dropdown list of numbers

^检查此答案,只需使用来自URL的ID中的数据填充列表。