gpt4 book ai didi

Django - 管理中的外键字段初始值定义

转载 作者:行者123 更新时间:2023-12-05 01:20:01 25 4
gpt4 key购买 nike

我有一个 Person模型,其中有 ForeignKey本身的字段,称为 mother .
当用户进入“添加”管理表单时,我想为 mother 定义一个初始值,以防万一有 GET('mother')参数,或将其留空,以防万一。

我实际上有两个问题:

  • 如何访问内部请求 ModelAdmin ?
  • 如何为 ForeignKey 定义初始值 field ?

  • 在models.py中:
    class Person(models.Model):
    name=models.CharField()
    mother=models.ForeignKey('self')

    在 admin.py 中:
    class  PersonAdminForm(forms.ModelForm):
    class Meta:
    model = Person

    class PersonAdmin(admin.ModelAdmin):
    mother = request.GET.get('mother','') #don`t know how to access request

    if mother != '':
    form = PersonAdminForm
    form.initial={'mother':Person.objects.get(id=mother)}

    嗯,这是行不通的。即使我只是尝试定义一个硬编码的初始值,它也不起作用。

    我究竟做错了什么?

    PS.:当然,我可能问错了问题,所以我感谢任何解决问题的帮助。

    最佳答案

    我的解决方案:

    class PersonAdmin(admin.ModelAdmin):
    form = PersonAdminForm
    # ...
    def get_form(self, request, obj=None, *args, **kwargs):
    form = super(PersonAdmin, self).get_form(request, *args, **kwargs)
    # Initial values
    form.base_fields['mother'].initial = None
    if obj and obj.mother:
    form.base_fields['mother'].initial = obj.mother
    return form

    关于Django - 管理中的外键字段初始值定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656529/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com