微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重定向到 Django 中的不同模型

如何解决重定向到 Django 中的不同模型

在更新并提交文件后,在我的项目中,我想重定向内容中的关联对象 我怎么能做到? 如果我想在文件模型中使用 def get_absolute_url,我如何使用它重定向到 urls.py 中定义的“content.detail” 我试过这个:

def get_absolute_url(self):
    return reverse('content.detail',args=[str(self.id)])

并且它返回与 File 具有相同 id 的内容对象,例如,如果我们有一个 File id=5,它通过 id=74内容相关联,通过 get_absolute_url 函数,它返回一个 content id=5,但我希望它返回 content id=74

models.py

class File(models.Model):
    history = AuditlogHistoryField()

    extension = models.CharField(max_length=20,default='html')
    base64encoded = models.BooleanField(default=False)
    compressed = models.BooleanField(default=False)
    data = models.TextField()

class Content(models.Model):
    history = AuditlogHistoryField()

    name = models.CharField(max_length=120,unique=True)
    sorry_content_file = models.ForeignKey(
        File,on_delete=models.CASCADE,null=False,related_name='first_file')
    busy_content_file = models.ForeignKey(
        File,related_name='second_file')
    emergency_content_file = models.ForeignKey(
        File,related_name='last_file')
    created_at = models.DateTimeField(auto_Now_add=True)
    updated_at = models.DateTimeField(auto_Now=True)

view.py

class FilesUpdateView(generic.UpdateView):
    model = File
    fields = ['data']

file_form.html

{% block content %}
    <form method="POST" class="user">
        <div class="row">
            <div class="col-lg-8">
                <div class="card shadow mb-4">
                    <div class="card-header py-3">
                        <h6 class="m-0 font-weight-bold text-primary">{% trans 'Details' %}</h6>
                    </div>
                    <div class="card-body">
                        {% csrf_token %}
                        {% for field in form.visible_fields %}
                            <div class="form-group">
                                {{ field.label_tag }}
                                {% render_field field class='form-control' %}
                                {% if field.help_text %}
                                    <p class="help-block">{{ field.help_text }}</p>
                                {% endif %}
                            </div>
                        {% endfor %}
                    </div>
                </div>

                <p>
                    <button type="submit" class="btn btn-primary btn-icon-split">
                            <span class="icon text-white-50">
                                <i class="fas fa-check"></i>
                            </span>
                            <span class="text">{% trans 'Submit' %}</span>
                        </button>

                        <a href="{% url 'content.list' %}" class="btn btn-secondary btn-icon-split">
                            <span class="icon text-white-50">
                                <i class="fas fa-times"></i>
                            </span>
                            <span class="text">{% trans 'Cancel' %}</span>
                    </a>
                </p>
            </div>
        </form>

{% endblock %}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。