django利用modelform生成表单的问题? 10
表1中存放所有用户创建的分类,表2foreignkey表1,用modelform生成表单的时候分类那会把所有用户的分类都放进来,应该是用户A操作的时候只把用户A的分类放进...
表1中存放所有用户创建的分类,表2foreignkey表1,用modelform生成表单的时候分类那会把所有用户的分类都放进来,应该是用户A操作的时候只把用户A的分类放进选项卡。这个怎么处理
展开
展开全部
如果你使用 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})
首先,在视图函数中,查询数据库并返回与特定用户相关的分类:
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})
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询