0

Web サイトにユーザー フィルター システムを実装しています。ユーザーは、関心のある「カテゴリ」と「パッケージ」を選択し、ログイン時に一致するデータを表示できます。両方のデータ セットは、HTML 選択フォームから取得されます。カテゴリ: 「null ポインター」、「デッド コード」... およびパッケージ「package_x」、「package_y」、「package_z」...

私の質問は、このリスト情報をデータベースに保存する最良の方法についてです (私は Django と PostgresSQL を使用しています)。

私の最初の考えは、次のようなテーブルを持つことです。

user_id - one to one field
categories - textfield - store json data
packages - textfield - store json data

これを行うためのより良い方法はありますか?

4

1 に答える 1

1

私は、カテゴリとパッケージが多対多のフィールドであるユーザー プロファイルを使用するルートをたどります。

models.py で

from django.contrib.auth.models import User

class Category(models.Model):
    name = models.CharField(max_length=255)

class Package(models.Model):
    name = models.CharField(max_length=255)

class UserProfile(models.Model):
    user = models.ForiegnKey(User)

    categories = models.ManyToManyField(Category)
    packages = models.ManyToManyField(Package)

admin.py で

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class CustomUserAdmin(UserAdmin):     
    inlines = [UserProfile]
    #filter_horizontal = ('',) #Makes the selection a bit more friendly

admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

views.py で

user_with_profile = User.objects.get(pk=user_id).get_profile()

言われていることすべて。Django 1.5 では、ユーザー プロファイルが、構成可能なユーザー モデルを使用できるように置き換えられます。

于 2013-01-24T20:03:56.077 に答える