我有这些模型(我已将字段数量限制为仅需要的那些)
class unit(models.Model):
name = models.CharField(max_length=200)
class project(models.Model):
name = models.CharField(max_length=200)
class location(address):
project = models.ForeignKey(project)
class project_unit(models.Model):
project = models.ForeignKey(project)
unit = models.ForeignKey(unit)
class location_unit(models.Model):
project = models.ForeignKey(project)
#Limit the selection of locations based on which project has been selected
location = models.ForeignKey(location)
#The same here for unit. But I have no idea how.
unit = models.ForeignKey(project_unit)
Run Code Online (Sandbox Code Playgroud)
我的新手头只是无法掌握如何限制location_unit模型中的两个字段,位置和单位,只显示在location_unit中引用所选项目的选项.我应该覆盖模型并在那里进行查询,还是可以使用limit_choices_to.无论哪种方式,我都尝试失败了
编辑:只是为了澄清,我想在Django Admin中发生这种情况.我也试过了formfield_for_foreignkey,但仍然不适合我.
编辑2:
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "unit":
kwargs["queryset"] = project_unit.objects.filter(project=1)
return db_field.formfield(**kwargs)
return super(location_unit_admin, self).formfield_for_foreignkey(db_field, request, …
Run Code Online (Sandbox Code Playgroud) 这一切都很简单.我有这样的形式:
class add_basketForm(forms.Form):
def __init__(self, selected_subunits, *args, **kwargs):
self.selected_subunits = selected_subunits
super(add_basketForm, self).__init__(*args, **kwargs)
for subunit in self.selected_subunits:
self.fields['su%d' % (subunit['unit__id'])] = forms.IntegerField()
Run Code Online (Sandbox Code Playgroud)
子单元的数量未知.我想用这样的东西(你明白了):
{% for unit in selected_subunits %}
{{ form.su%s }} % (unit.unit__id)
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.我的问题是如何在Django模板语言中引用这些表单域?
我试图弄清楚QT中是否有任何东西等同于Delphi的Align属性,如alTop,alClient,alRight等等?
django ×2
alignment ×1
delphi ×1
dynamic ×1
foreign-keys ×1
forms ×1
limit ×1
properties ×1
qt ×1
templates ×1