如何解决重定向到 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 举报,一经查实,本站将立刻删除。