【发布时间】:2020-07-09 03:13:44
【问题描述】:
我一直在从事一个非常类似于 hoop 的 django 项目,在该项目中,用户可以使用 snapchat 个人资料搜索朋友。 Hoop 按地区过滤用户,例如在使用应用程序之前,用户必须选择用户现在所在的地区,以便稍后为在该地区搜索朋友的人显示该个人资料,该应用程序还要求用户选择用户所在的地区用户想要搜索新朋友。
我想做同样的过滤,但不是过滤区域,而是按类别过滤。目前我的代码只向所有用户显示配置文件,但我已经开始创建 2 个类别,即“动作”和“运动”,但我不知道如何处理该过滤。
型号
CATEGORY_CHOICES = (
('action', 'action'),
('sports', 'sports'),
)
class Mates(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='usermates', unique=True)
categories = models.CharField(choices=CATEGORY_CHOICES, default="choose...", max_length=10)
req_bio = models.CharField(max_length=400)
req_image = models.ImageField(upload_to='requestmates_pics', null=True, blank=True, default=False)
views.py
def matesmain(request):
contents = Mates.objects.all()
context = {
'contents': contents,
'form_mates': MatesForm(),
}
print("nice3")
return render(request, 'mates.html', context)
def mates(request):
if request.method == 'POST':
form_mates = MatesForm(request.POST, request.FILES)
if form_mates.is_valid():
instance = form_mates.save(commit=False)
instance.user = request.user
instance.save()
return redirect('mates-main')
print('succesfully uploded')
else:
form_mates = MatesForm()
print('didnt upload')
return redirect('mates-main')
forms.py
class MatesForm(forms.ModelForm):
class Meta:
model = Mates
fields = ('req_bio', 'req_image',)
exclude = ['user']
mates.html(这里是html的形式)
{% for content in contents %}
{% if not content.user == user %}
<div class="mates-grid">
<div class="mates-grid-1">
<div class="mates-item">
<form action="{% url 'mates' %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-item-img">
<input type="file" name="req_image" accept="image/*" id="id_req_image">
</div>
<div class="form-item-bio">
<input type="text" name="req_bio" maxlength="400" required="" id="id_req_bio">
</div>
<div class="form-item-button">
<button type="submit">Submit</button>
</div>
</form>
</div>
</div>
</div>
{% endif %}
{% endfor %}
【问题讨论】:
-
这行得通吗,
Mates.objects.filter(categories='action')?
标签: python django django-models django-forms django-views