我目前正在尝试弄清楚如何检查状态是否确实适用于用户请求。
models.py
class CategoryRequests(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
status = StatusField()
STATUS = Choices('Waiting', 'Rejected', 'Accepted')
views.py
def view_profile_categoy_requests_accepted(request, pk=None):
if pk:
user = get_user_model.objects.get(pk=pk)
else:
user = request.user
args = {'user': user}
return render(request, 'myproject/category_request_accepted.html', args)
但是在模板上,这似乎是错误的。
template.html
{% if user.categoryrequests.status == 'Waiting' %}
预先感谢
答案 0 :(得分:0)
您可以在模型中为related_name
添加一个ForeignKey
参数。
class CategoryRequests(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='status')
status = StatusField()
STATUS = Choices('Waiting', 'Rejected', 'Accepted')
然后在模板中添加以下内容:
{% if user.status.STATUS == 'Waiting' %}
This answer详细介绍了related_name
答案 1 :(得分:0)
有问题-#include <stdio.h>
int main(void){
int array[100], i;
for(i=0; i<100; i++)
array[i]=i;
int *ptr1, *ptr2, flag=0;
ptr1 = &array[0];
ptr2 = &array[0];
while(!flag){
for(i=0;i<100;i++){
if(*ptr1 > array[i]){
ptr1 = &array(i);
break;
}else if(*ptr2 < array[i]){
ptr2 = &array(i);
break;
}
}
if(i==100)
flag=1;
}
printf("%d %d", *ptr1, *ptr2);
}
。如果尚未在Foreignkey字段上设置user.categoryrequests
,则无法进行这样的反向查找。
您有两个选择:
1。。还使用related_name
从用户那里获得反向外键。
2。或,在外键上将user.categoryrequests_set
设置为related_name
,然后您可以按照当前的方式进行反向查找。
请参阅有关reverse lookups的文档。