6

dictモデルにフィールドを追加して管理画面に表示dictし、管理画面から編集できるようにしたいです。

たとえば、私は関係を持っています

dict = { 'sister' : rel_score, 'mother' : rel_score, 'father': rel_score}

ここでrel_score(デフォルト = 0) は、各関係のスコアです。これをモデルに保存しdictて管理画面に表示し、管理画面の各関係にこれらの rel_score を割り当てることができるようにします。

また、さまざまな要素にスコアを割り当てて (優先順位を付けて)、これらの割り当てられたスコアに従って値を返す方法の例は、非常に役立ちます。

4

3 に答える 3

2

基礎となるデータベースがそのタイプのデータ構造をサポートしないため、 DictField を持つことは実際には不可能です。

リレーションシップを格納する RelationshipScore モデルと、そこから既存のモデルへの ForeignKey を使用できます (例として user を使用します)。例えば:

Class RelationshipScore(models.Model):
    user = models.ForeignKey(User)

    relationship = models.CharField(max_length=50, primary_key=True)
    score = models.IntegerField()

次に、関数を既存のモデルに追加して値を取得できます。

class User(models.Model):
    def get_relationship(self, rel):
        return RelationshipScore.objects.get(relationship=rel, user=self)
    def get_lowest_relationship(self):
        return RelationshipScore.objects.filter(user=self).order_by("-score")[0]
于 2015-01-20T07:59:41.793 に答える
1

Django 1.8 以降、postgres ユーザーにはHStore フィールドを使用するオプションもあります。

A field for storing mappings of strings to strings. The Python data type used is a dict.
于 2016-04-25T21:21:19.197 に答える