使用django1.6,我有一个基于类的视图来查看日志。这样,我就有了两个不同的查询集…用于排序最早的日期和最近的日期。稍后我将添加更多的查询集。你知道吗
我该如何在url中放置一个slug,并让基于类的view ViewLog()获取该slug并基于它使用适当的查询集?你知道吗
而且,基于slug的if-then语句看起来很混乱,但是唯一的替代方法是让不同的url为特定的查询集调用不同的类……这看起来更混乱。你知道吗
url(r'^log_view/(w+)$', ViewLog.as_view(),
name = "log_view"),
你知道吗型号.py地址:
class LogMostRecent(models.Manager):
def get_queryset(self):
return super(Log, self).get_queryset().order_by("date_stamp")
class LogLeastRecent(models.Manager):
def get_queryset(self):
return super(Log, self).get_queryset().order_by("-date_stamp")
class Log(models.Model):
IRC_MESSAGE_LENGTH = 512
date_stamp = models.DateTimeField()
irc_name = models.ForeignKey(Employee,
related_name='irc_name_log')
message = models.CharField(max_length=IRC_MESSAGE_LENGTH)
objects = AddLogEntry()
most_recent = LogMostRecent()
least_recent = LogLeastRecent()
你知道吗视图.py地址:
class ViewLog(LoginRequiredMixin, ListView):
template_name = "bot_data/log_view.html"
model = Log
你知道吗网址.py你知道吗
你知道吗视图.py你知道吗
最好的方法是从正在使用的slug中选择ListView的get_queryset中的queryset,这样就不会创建一大堆类似的视图,为每个视图指定一个queryset。你知道吗
相关问题 更多 >
编程相关推荐