-
Имеется модели
taxonomy
taxonomy_term
taxonomy_map
articles
Возможно ли их связать явно указав в моделях,что при создании/изменении/удалении надо создать/удалить/изменить соотвествующие id в таксономии?
Вообщем,как бы связать их? Или без предопределения save() и update() не обойтись ?from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
# Create your models here.
class Taxonomy(models.Model):
type = models.CharField(max_length=20, unique=True)
def __unicode__(self):
return self.type
class TaxonomyTerm(models.Model):
type = models.ForeignKey(Taxonomy)
term = models.CharField(max_length=20)
parent = models.ForeignKey('self', null=True,blank=True)
def __unicode__(self):
return self.term
class TaxonomyMap(models.Model):
term = models.ForeignKey(TaxonomyTerm, db_index=True)
type = models.ForeignKey(Taxonomy, db_index=True)
content_type = models.ForeignKey(ContentType, verbose_name='content type', db_index=True)
object_id = models.PositiveIntegerField(db_index=True)
object = generic.GenericForeignKey('content_type', 'object_id')
def __unicode__(self):
return self.term.term -
Если простым языком - как связать две таблицы по двум значениям? Например таблица
articles и таблица taxonomy_map(содержит кучу id из разных мест,поэтому и нужна допольнительная проверка при связывании)
Последняя содержит object_id и object. Как их связать по этим двум значениям,чтобы object_id был соответственно равен/проверялся id articles,но objcect всегда сверялся с значением "articles".
Помогите чем "смогите" :) -
Вы написали очень много слов, которые имеют смысл только для вас (никто не знает, что тут означает "таксономия", и как она должна быть с чем-то связана). Приведите какой-нибудь один конкретный пример целиком, что должно происходить.
-
омг,таксонимия...н/а термин для программиста?
Во 2 посте написан понятный пример. -
таксономия*
-
Если вообще вкратце,то:
Нужен models.ForeignKey() - который будет доп. проверять значение со связанной базой,т.е.
ForeignKey(type='type') -
Нужен models.ForeignKey() - который будет доп. проверять значение со связанной базой,т.е.
ForeignKey(type='type')Давайте по порядку...
Что значит "проверять"? ForeignKey ссылается из одной модели в другую. Единственное, что тут обычно понимается под "проверять" — это гарантия того, что у родительской таблицы реально существует запись с ID, на который ссылается ForeignKey. Что должен проверять type?
-
Допустим есть таблица где в поле object_id хранятся id каких-либо данных из других таблиц (именно поэтому есть колонка "type,чтобы разделять эти id по типу(таблицам)). Задача - связать таблицы так чтобы учитывался указанный type.
-
В Django есть GenericRelation, Вам случайно не он нужен?
З.Ы. То ли я слишком привык к джанговско-питоновой терминологии и не понимаю другой, то ли Вы и впрямь очень уж непонятно пишете...
-
Да, и правда на generic relation похоже...
-
Причем самое интересное, что в примере и так generic relations.
А суть вопроса не понял, ни с первого, ни со второго раза)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


