在每个人页面的用户管理中,除了默认的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个字段用于扩展,这并非总是如此。如何正确循环每个内联字段?
答案 0 :(得分:1)
如何正确循环每个内联字段?
您可以使用list comprehension循环播放它们:
extension_fields = [self.data[k] for k in self.data.keys() if 'extension_set' in k]
但是,我并不完全相信这是实现这一目标的正确方法。您没有提供足够的示例代码来解释您正在做的事情。如果您正在尝试处理并验证此数据,Django应该为您执行此操作(可能使用ModelForm)。你不应该自己硬编码。