【发布时间】:2021-08-05 22:58:17
【问题描述】:
我想根据用户主键查找练习数据。 因此,当我打开 url: localhost:8080/api/practice-filter?user=1 时,它将根据 id 为 1 的用户输出所有练习数据。
model.py
class Practice(models.Model):
practice_id = models.BigAutoField(primary_key=True)
user = models.ForeignKey('User', models.DO_NOTHING, default=None)
score = models.SmallIntegerField(null=True)
class Meta:
managed = True
db_table = 'practice'
def __str__(self):
return str(self.practice_id)
class User(models.Model):
user_id = models.BigAutoField(primary_key=True)
fullname = models.CharField(max_length=50)
email = models.CharField(max_length=100)
password = models.TextField()
class Meta:
managed = True
db_table = 'user'
def __str__(self):
return self.fullname
view.py
@api_view(['GET'])
def practice_filter(request):
if request.method == 'GET':
exercises = Practice.objects.all()
user = request.GET.get('user', None)
if user is not None:
practice_filtered = exercises.filter(user__user__icontains=user)
exercises_serializer = PracticeSerializer(practice_filtered, many=True)
return JsonResponse(exercises_serializer.data, safe=False)
但是当我运行上面的代码时,我得到一个错误:
相关字段查找无效:用户
如何解决这个错误? 我不知道该怎么办。 我仍然是初学者,需要很多指导。 请帮忙。 谢谢。
【问题讨论】:
标签: python django django-models django-views