表单中的Django数据验证(admin / auth / user)

时间:2010-11-22 20:56:35

标签: django django-admin django-forms

在每个人页面的用户管理中,除了默认的django字段集外,我还有另外两个内联(UserProfile和一个名为“Extension”的模型)。 但是,每当我修改Extension的内联中的字段时,我希望能够处理/验证所有这些字段。

UserProfile:

user = models.ForeignKey(User, unique=True)
client = models.ForeignKey(Client)

扩展:

user = models.ForeignKey(User)
date_created = models.DateTimeField(auto_now_add=True, auto_now=True)
number = models.CharField(max_length=16, unique=False)

例如,当我编辑用户的分机号码时,我希望能够获取每个字段内的所有值(这是动态的)。现在我正在使用self.data [“”]:

extension_fields = [self.data["extension_set-0-number"],
                    self.data["extension_set-1-number"],
                    self.data["extension_set-2-number"]]

这带来的一个问题是我假设总是只有3个字段用于扩展,这并非总是如此。如何正确循环每个内联字段?

1 个答案:

答案 0 :(得分:1)

  

如何正确循环每个内联字段?

您可以使用list comprehension循环播放它们:

extension_fields = [self.data[k] for k in self.data.keys() if 'extension_set' in k]
但是,我并不完全相信这是实现这一目标的正确方法。您没有提供足够的示例代码来解释您正在做的事情。如果您正在尝试处理并验证此数据,Django应该为您执行此操作(可能使用ModelForm)。你不应该自己硬编码。