Django Model установил внешний ключ к полю другого Model

Попробуйте использовать

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
}
21
задан Cory 8 April 2009 в 14:19
поделиться

2 ответа

Да и нет. Отношение 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)

Обратите внимание, что если вы используете поля «многие ко многим» (а не «один ко многим»), есть встроенная поддержка для создания пользовательских промежуточных таблиц для хранения метаданных с опцией - .

18
ответ дан 29 November 2019 в 06:10
поделиться
[

] Я не пробовал, но похоже, что с версии Django 1.0 можно сделать что-то вроде: [

] [
class Foo(models.Model):
    foo = models.ForeignKey(Bar, to_field='bar')
] [

] Документация на это [] здесь []. [

]
76
ответ дан 29 November 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: