相关疑难解决方法(0)

如何在Django ModelForm中过滤ForeignKey选项?

说我的我有以下内容models.py:

class Company(models.Model):
   name = ...

class Rate(models.Model):
   company = models.ForeignKey(Company)
   name = ...

class Client(models.Model):
   name = ...
   company = models.ForeignKey(Company)
   base_rate = models.ForeignKey(Rate)
Run Code Online (Sandbox Code Playgroud)

即有多个Companies,每个都有RatesClients.每个都Client应该有一个Rate从它的父级Company's Rates而不是另一个基础中选择的基础Company's Rates.

在创建用于添加a的表单时Client,我想删除Company选项(因为已经通过Company页面上的"添加客户端"按钮Rate选择了该选项)并且还将选择限制为该选项Company.

我如何在Django 1.0中解决这个问题?

我目前的forms.py文件只是样板文件:

from models import *
from django.forms import ModelForm

class ClientForm(ModelForm):
    class Meta:
        model = Client
Run Code Online (Sandbox Code Playgroud)

views.py也是基本的:

from django.shortcuts …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

218
推荐指数
4
解决办法
13万
查看次数

Django ModelForm实例,具有特定字段的自定义查询集

我的模型与以下内容不同:

class Bike(models.Model):
    made_at = models.ForeignKey(Factory)
    added_on = models.DateField(auto_add_now=True)
Run Code Online (Sandbox Code Playgroud)

所有用户都可以在多家工厂工作,因此,他们的用户配置文件都有一个ManyToManyFieldFactory.

现在我想构建一个ModelFormfor,Bike但我希望made_at列表只包含当前用户工作的工厂.这个想法是,用户应该能够添加他们组装好的自行车并进入自行车所在的工厂.

我怎么做?

django django-forms modelform

25
推荐指数
2
解决办法
3万
查看次数

Django限制ManytoMany基于选定的FK的查询集

我有一个看起来像这样的模型:

class Invite(models.Model):
    user = models.ForeignKey(User)
    event = models.ForeignKey(Event)
    roles = models.ManyToManyField(Role, blank=True, null=True)
    sent =  models.BooleanField("Invite Sent", default=False, editable=False)
    created = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return u"%s" % self.user

    class Meta:
        unique_together =(('user','event'),)


class Role(models.Model):
    """
    This associates a user's role to an event
    """
    event = models.ForeignKey(Event, related_name="roles")
    roletype = models.ForeignKey(RoleType)
    profiles = models.ManyToManyField(Profile, related_name="roles",
            blank=True, null=True)
    modified = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

因此,无论何时创建新事件,都会创建一堆角色.在Invite模型中,我如何只显示与我在Django Admin中的更改表单中选择的事件相关联的角色,而不是显示Role模型中的所有条目?

django django-admin

11
推荐指数
2
解决办法
3019
查看次数

添加/更改表单中的ForeignKey字段 - Django admin

假设我将这些模型作为一个简单的例子:

class Event(models.Model):
    name = models.CharField(max_length=50, default='')
    app = models.ForeignKey(App)

class App(models.Model):
    name = models.CharField(max_length=50, default='')
    app_config = models.ForeignKey(AppConfig)

class AppConfig(models.Model):
    type = models.CharField(max_length=50, default='')
    is_valid = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

我想创建一个带有添加/更改表单的管理页面,Event这样我就可以选择App并创建AppConfig所有字段.

基本上,要有一个带有下拉列表的表单来选择App一个表单以及一个表单来填充AppConfig字段.或者甚至只是一个"+"符号或一个链接,它会弹出一个表单来创建一个AppConfig.

我看到了很多关于如何将其添加到list_display(例如this)中的示例,但是无法设法执行相同操作fields或者fieldsets为了将其添加到添加/更改表单中.

任何建议将不胜感激.谢谢!

注意:我知道如果我还有AppConfig一个外键,这可能很容易解决,Event但这并没有多大意义.

编辑:我的Django和Python版本:
Python:2.7.x
Django:1.7.4

Edit2:我发现这个很好的开源代码django_reverse_admin可能会有所帮助,但首先,这个特定的软件包只支持Django 2.0+.我试图使用原来的代码,似乎支持以前的Django版本,但没有设法将其应用于我的具体情况.
如果有人有想法或者可以告诉我如何在我的特定情况下使用它,这将是伟大的.谢谢!

python django django-forms django-admin

9
推荐指数
1
解决办法
682
查看次数

django链选择

django-smart-choices是一个优雅的解决方案,使Django开发人员能够在其表单中链接选择输入.但正如开发人员在其问题列表中所报告的那样,在表单集中使用它时效果不佳.

它呈现的javascript与模型定义中右侧的"链式字段"的id相关联.

在formset中使用时,您认为如何使其工作?我认为窗口小部件的渲染方法(请参阅django-smart-choices代码)需要以某种方式了解formset(理想情况下,形成前缀).但是怎么样?

javascript django ajax jquery

5
推荐指数
1
解决办法
4074
查看次数