Попробуйте использовать
for(i in 1:sample){
hierdata[[i]] <- list()
for(j in 1:10){
code_j_init <- paste0("hierdata[[",i,"]]$Test_",j,"<- list()")
eval(parse(text = code_j_init))
hierdata[[i]][[j]] <- list(1,2,3)
}
}
или
for(i in 1:sample){
hierdata[[i]] <- list()
names <- c()
for(j in 1:10){
hierdata[[i]][[j]] <- list(1,2,3)
names <- c(names,paste0("Test_",j))
}
names(hierdata[[i]]) <- names
}
Да и нет. Отношение FK описано на уровне класса и отражает ассоциацию FK в базе данных, поэтому вы не можете добавить дополнительную информацию непосредственно в параметр FK.
Вместо этого я бы рекомендовал иметь строку, содержащую имя поля в другой таблице:
class ValidationRule(models.Model):
other = models.ForeignKey(OtherModel)
other_field = models.CharField(max_length=256)
Таким образом, вы можете получить поле с помощью:
v = ValidationRule.objects.get(id=1)
field = getattr(v, v.other_field)
Обратите внимание, что если вы используете поля «многие ко многим» (а не «один ко многим»), есть встроенная поддержка для создания пользовательских промежуточных таблиц для хранения метаданных с опцией - .
] Я не пробовал, но похоже, что с версии Django 1.0 можно сделать что-то вроде: [
] [class Foo(models.Model):
foo = models.ForeignKey(Bar, to_field='bar')
]
[] Документация на это [] здесь []. [
]