django利用modelform生成表单的问题? 10

表1中存放所有用户创建的分类,表2foreignkey表1,用modelform生成表单的时候分类那会把所有用户的分类都放进来,应该是用户A操作的时候只把用户A的分类放进... 表1中存放所有用户创建的分类,表2foreignkey表1,用modelform生成表单的时候分类那会把所有用户的分类都放进来,应该是用户A操作的时候只把用户A的分类放进选项卡。这个怎么处理 展开
 我来答
冉升升小童鞋
2023-02-10 · 不秃头的Python攻城狮
冉升升小童鞋
采纳数:1 获赞数:0

向TA提问 私信TA
展开全部
如果你使用 Django 的模型表单 (model form) 生成表单,可以使用 Django 查询数据库进行筛选,以便仅显示与特定用户相关的分类。
首先,在视图函数中,查询数据库并返回与特定用户相关的分类:
from django.shortcuts import render
from .models import Category
def my_view(request):
user_categories = Category.objects.filter(user=request.user)
return render(request, 'my_template.html', {'categories': user_categories})
然后,在模板中,您可以在生成表单时使用该分类集:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
最后,在表单类中,您可以重写初始化方法,以仅使用用户分类:
from django import forms
from .models import Table2
class Table2Form(forms.ModelForm):
class Meta:
model = Table2
fields = ('category',)
def __init__(self, user, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['category'].queryset = Category.objects.filter(user=user)
最后,在视图函数中实例化表单,并将用户传递给表单类:
from django.shortcuts import render
from .forms import Table2Form
def my_view(request):
user_categories = Category.objects.filter(user=request.user)
form = Table2Form(request.user, instance=table2_instance)
return render(request, 'my_template.html', {'form': form})
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式