Nat*_*tim 5 python django django-models django-admin
我正在尝试使用order_with_respect_to Django Meta 选项并在管理中重新排序项目。
我找到了https://github.com/bfirsh/django-ordered-model但他们似乎没有使用原生的 Django API。
您知道有人将这种重新排序功能添加到 Django 管理员吗?
该模型如下所示:
from django.db import models
class Question(models.Model):
text = models.TextField()
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
text = models.TextField()
class Meta:
order_with_respect_to = 'question'
Run Code Online (Sandbox Code Playgroud)
我希望能够重新排列管理员的答案。
小智 1
我不知道这是否是最好的方法,但它似乎有效:您可以向管理员提供您自己的 ModelForm,包括一个额外的字段(如下所示:django-admin-add-custom-form-fields-that-不是模型的一部分)。
上面示例的代码可能如下所示(forms.py):
from django import forms
from .models import Question
class QuestionAdminForm(forms.ModelForm):
assign_order = forms.CharField(
max_length=50,
help_text=("Enter order of ids in comma separated list, "
"e.g. '0,1,2,3'")
)
def save(self, commit=True):
instance = super().save(commit)
assign_order = self.cleaned_data.get('assign_order', None)
order_list = [int(num) for num in assign_order.split(',')]
instance.set_answer_order(order_list)
if commit:
instance.save()
return instance
class Meta:
model = Question
fields = '__all__'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |