Я привел две таблицы и их модели.
mysql> SELECT gid, sk, source from datagen_gidskmap limit 10;
+-----+------+----------+
| gid | sk | source |
+-----+------+----------+
| 1 | 3829 | smsarena |
| 2 | 623 | smsarena |
| 3 | 1308 | smsarena |
| 4 | 1747 | smsarena |
| 5 | 1827 | smsarena |
| 6 | 1218 | smsarena |
| 7 | 2957 | smsarena |
| 8 | 3468 | smsarena |
| 9 | 2580 | smsarena |
| 10 | 2579 | smsarena |
+-----+------+----------+
10 rows in set (0.00 sec)
class GidSkMap(models.Model):
gid = models.AutoField(primary_key=True)
sk = models.CharField(max_length=256)
source = models.CharField(max_length=64)
creation_date = models.DateTimeField(auto_now_add=True)
modification_date = models.DateTimeField(auto_now=True)
def __unicode__(self):
return u'%s' % self.gid
class Meta:
unique_together = ("sk", "source")
mysql> SELECT id, gid_id, nm from datagen_crawlmeta limit 10;
+----+--------+----------------------------+
| id | gid_id | nm |
+----+--------+----------------------------+
| 1 | 1 | votes |
| 2 | 1 | performance_rating |
| 3 | 1 | title |
| 4 | 1 | specs__Sound__Loudspeaker |
| 5 | 1 | specs__Sound__3.5mm jack |
| 6 | 1 | specs__Sound__Alert types |
| 7 | 1 | specs__Sound__unknown0 |
| 8 | 1 | specs__Features__Java |
| 9 | 1 | specs__Features__Messaging |
| 10 | 1 | specs__Features__Colors |
+----+--------+----------------------------+
10 rows in set (0.00 sec)
class CrawlMeta(models.Model):
gid = models.ForeignKey(GidSkMap)
nm = models.CharField(max_length=256)
val = models.TextField()
modification_date = models.DateTimeField(auto_now=True)
def __unicode__(self):
return u'%s' % self.gid
class Meta:
unique_together = ("gid", "nm")
При просмотре модели CrawlMeta в интерфейсе администратора django,
Я хотел бы иметь фильтр на основе "источника" (например, smsarena), который может быть доступен
через gid (который является внешним ключом в CrawlMeta и primary_key в GidSkMap).
Любая помощь будет оценена.