2017-08-22 5 views
0

私はForeignKeyによってリンクされた2つの異なるモデルを持っています。あるものはある特定のuuidを含み、もう1つは特定のidを含んでいます。これらを同じURLに入れることができるようにしたいと思います。2つの異なるモデルのuuidとidを同じURLに入れる方法は?

ここmodels.pyです:

url(r'^edit/(?P<id>\d+)/(?P<uuid>[^/]+)/$', views.edit, name='edit'), 

Views.py

def edit(request, id, uuid): 
    user_uuid = User.objects.filter(id=id) 
    user = get_object_or_404(User, id=id, uuid=user_uuid.creation.uuid) 
:ここ

class Creation(models.Model): 
    ... 
    uuid = models.UUIDField(default=uuid.uuid4, unique=True) 

class User(models.Model): 
    ... 
    creation = models.ForeignKey(Creation, null=True) 

URLパターンのように見えるべきものだが、

私が何をしようとしているかはわからないので、ビュー機能は意味を持ちませんが、UserはURLのIDでなければなりません。Creationは各ユーザー多くの場合、Creationを持つことができます。

どうすればこの問題を解決できますか?

+0

'models.ForeignKey(UserCreation、null = True)'ここでは、 'Creation'か' UserCreation'ですか? –

+0

@ArpitSolanki Typoを編集しました – Lindow

+0

'UserInfo'とは何ですか?モデルの場合は –

答えて

2

あなたの質問を理解することは非常に困難ですが、私は何をしたいことはある思い:UUIDが一意であるため、それは、クエリ内のユーザーIDを使用する必要はありませんけれども、もちろん

user = User.objects.get(id=id) 
creation = user.creation_set.filter(uuid=uuid) 

注意全く。 URLから完全に削除してuuidだけを使用して作成を取得し、次にcreation.user経由でユーザーを取得できます。

+0

UUIDを後で簡略化して8文字を含むようにしたいが、私は/ user_id/creation_uuidを持っていて、別の作成中に自分のIDを見ることができるようにしたいのですが、creation_setは何をしますか? – Lindow

+1

特定のユーザーに関連付けられているすべてのCreationsを提供します。ドキュメントの「逆の関係」を参照してください。 –

関連する問題