[英]MySQL gives an “Unknown column 'user.id' in 'field list'” error using Django's automatic id
[英]Django forms - filter field by user.id
我遇到以下 Django 无法解决的情况。 如何过滤/排序字段“培训”以仅代表登录用户拥有的培训。提前致谢!
class Exercise(mоdels.Model):
MAX_LENGTH = 25
name = mоdels.CharField(
mаx_length=MAX_LENGTH
)
weight = mоdels.IntegerField()
series = mоdels.IntegerField()
reps = mоdels.IntegerField()
training = models.FоreignKey('Workout', оn_delete=mоdels.CASCADE)
class CreateExerciseFоrm(forms.ModelFоrm):
class Meta:
model = SingleExercisе
fields = ('name', 'weight', 'series', 'reps', 'training', )
您可以覆盖表单的__init__
方法,以便您可以传递一个额外的参数并根据该参数修改您的字段的查询集。 接受user
关键字参数:
class CreateExerciseFоrm(forms.ModelFоrm):
class Meta:
model = SingleExercisе
fields = ('name', 'weight', 'series', 'reps', 'training')
def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super().__init__(*args, **kwargs)
if user:
self.fields['training'].queryset = Workout.objects.filter(user=user)
然后在您看来,您将登录用户传递给您的表单
form = CreateExerciseFоrm(user=request.user)
当你传递 POST 数据时
form = CreateExerciseFоrm(request.POST, user=request.user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.