首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:表单提交后发送GET-param

Django:表单提交后发送GET-param
EN

Stack Overflow用户
提问于 2018-09-24 10:45:13
回答 1查看 32关注 0票数 0

我用http://localhost:63314/user/mieter/?wohnungseinheit=1调用我的页面为(GET)-parameter。

我想使用传输的参数作为"wohnungseinheit“的赋值。在我填写并发送我的“表单”后,GET参数就丢失了。

我怎样才能指定"wohnungseinheit"?

代码语言:javascript
复制
def mieter(request,id):
    if request.method == 'POST':
        form = MieterForm(request.POST)
        if form.is_valid():
            tmp = request.GET.get('wohnungseinheit')
            mieter = form.save()#wohnungseinheit=tmp
            print(tmp) #result: None
            Wohnungseinheit = Wohnungseinheiten.objects.get(id=tmp)
            Wohnungseinheit.mieter.add(mieter)
            return render(request,'Immo/user/mieter.html',{'form':form}) # i think i also could use render_to_response
    else:
        if not str == None and str(id).isdigit():
            #unimportant code here

            if blnAllowedAccess:
                form = MieterForm(request.POST)
                return render(request,'Immo/user/mieter.html',{'form':form})
            else:
                #NOTALLOWEDTOACCESS! TODO
                pass
        else:
            tmp = request.GET.get('wohnungseinheit')
            if tmp is not None:
                form = MieterForm(request.POST or None)
                return render(request,'Immo/user/mieter.html',{'form':form})
            else:
                pass #TODO: 404-error

编辑:

models.py:

代码语言:javascript
复制
class MieterForm(forms.ModelForm):
    nameL = forms.CharField(required=True,max_length=100)
    class Meta:
        model=Mieter
        fields = ("nameL",)

class Wohnungseinheiten(models.Model):
    mieter = models.ManyToManyField(Mieter,blank=True,null=True)

urls.py:

代码语言:javascript
复制
    re_path(r'user/mieter/(?:(?P<id>\w+)/)?$', views.mieter,name="mieter"),

user/mieter.html:

代码语言:javascript
复制
<form class="form-signin" action="{% url 'mieter' %}" method="post">{% csrf_token %}
<input class="form-control"  id="{{ form.nameL.auto_id }}" name="nameL"  value="{{ form.nameL.value }} "type="text">
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 18:11:55

解决方案是:<a href="{% url 'mieter' %}?wohnungseinheit=1">

param可以由"if“或"for”动态组合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52477615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档