【问题标题】:get url and add instance to a model with prefilled foreign key :django admin获取 url 并将实例添加到具有预填充外键的模型中:django admin
【发布时间】:2013-03-01 01:51:54
【问题描述】:

我有一个页面,其中每个比赛都连续显示。每行包含竞赛 ID 和链接到具有竞赛外键的其他模型名称。喜欢新闻模型:

class News(models.Model):
    title = models.CharField(max_length=50, null=True)
    description = models.TextField()
    time = models.TimeField( default= datetime.datetime.now().time())
    contest = models.ForeignKey(Contest)

我想使用管理员来添加和更改这些模型。我希望当用户单击具有外键的“新闻”来比赛 id=1 时,它只显示具有此外键值的新闻列表。所以我用

{% for instance in instances %}
                    <tr class="{% cycle 'row1' 'row2' %}">
                        <td>{{ instance.title }}</td>
                        <td>{{ instance.startTime }}</td>
                        <td>{{ instance.timeSpan }}</td>
                        <td>{{ instance.date }}</td>                      
                        <td><a href="/admin/ContestManagement/news/?contest__id__exact={{ instance.id }}">News</a></td>                       
                {% endfor %}

现在,当我单击此链接时,它会根据我的需要显示带有此特殊竞赛 ID 的新闻列表。现在我想知道我如何在这个模板中理解(用比赛 id 过滤的 change_list),这个页面中的比赛 id 是什么,以向这个比赛 id 添加新闻,我有什么做的? (因为当前网址是:/admin/ContestManagement/news/add/ 我在模板中尝试了{{request}},但它是空的!! 非常感谢您的帮助

【问题讨论】:

    标签: django django-templates django-admin django-views


    【解决方案1】:

    如果 {{request}} 为空,您必须在 settings.pyTEMPLATE_CONTEXT_PROCESSORS 中添加 django.core.context_processors.request /p>

    见:https://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request

    【讨论】:

    • 非常感谢 :) 我得到了答案。您能否指导我使用比赛 ID 的最佳方式是什么?我的意思是现在(在你的帮助下)我可以在 add_form 模板中获取比赛 id,我可以使用这个值来设置比赛字段值。但是有更好的方法吗?例如用 django 管理功能来做吗?
    猜你喜欢
    • 2012-02-23
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2022-11-23
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多