【发布时间】:2020-02-07 10:39:58
【问题描述】:
class Category(models.Model):
'''Category for men's and women's items'''
gender = models.IntegerField(choices=[
(1, 'Women'),
(2, 'Men'),
], default=1)
name = models.CharField(max_length=100)
description = models.CharField(max_length=300, blank=True)
uploaded_date = models.DateTimeField(
auto_now_add=True, null=True, blank=True)
class Meta():
verbose_name_plural = 'Categories'
def __str__(self):
return self.get_gender_display() + ' ' + self.name
def get_absolute_url(self):
if # condition: more than 1 value passed from url
return reverse('boutique:category', kwargs={'gender': self.get_gender_display(), 'category_pk': self.pk})
else:
return reverse('boutique:show-all', kwargs={'gender': self.get_gender_display()})
问题:如何计算出get_absolute_url 函数更动态地工作的逻辑?或者它不应该动态工作?在上面的 if 语句中,我想放置一个条件来检查从 url 传递的值的数量,以便它可以决定要呈现哪个视图。是否可以?还是我应该单独创建get_FOO_url() 函数,以使用从 url 传入的不同值来渲染每个视图?
【问题讨论】:
标签: python django url django-models