ما نوع الخاصية الذي أستخدمه لوضع مستخدم user_id () للمستخدم في مخزن البيانات؟

StackOverflow https://stackoverflow.com/questions/1593367

سؤال

هذا هو السبب في أنني بحاجة إلى وضع user_id () في مخزن البيانات:

لا يتم تحديث قيمة المستخدم في مخزن البيانات إذا قام المستخدم بتغيير عنوان بريدها الإلكتروني. قد يتم علاج هذا في إصدار مستقبلي. حتى ذلك الحين ، يمكنك استخدام قيمة المستخدم user_id () كمعرف فريد مستقر للمستخدم.

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#users_user

داخل مخزن البيانات ، تكون القيمة مساوية لعنوان البريد الإلكتروني بالإضافة إلى معرف المستخدم الفريد. إذا قام المستخدم بتغيير عنوان بريدها الإلكتروني ، فلن تساوي قيمة المستخدم الجديدة قيمة المستخدم الأصلية في استعلامات مخزن البيانات أو عند مقارنتها بواسطة التطبيق. إذا كان تطبيقك يحتاج إلى معرف مستقر لا يتغير ، فيمكنك تخزين المعرف الفريد بشكل منفصل عن قيمة المستخدم.

http://code.google.com/appengine/docs/python/users/userobjects.html

كيف فعلتها؟

وكيف عرفت (أو أين بحثت عنها؟)

هل كانت مفيدة؟

المحلول

الإجابة المعتادة هي "لا خاصية": إذا كنت بحاجة إلى معرف مستقر ، فربما يكون ذلك لأنك تبحث عن المستخدمين ، وفي هذه الحالة يجب أن تستخدمه كاسم رئيسي للكيان ، مثل ذلك:

class UserInfo(db.Model):
  is_admin = db.BooleanProperty(required=True, default=False)

user_info = UserInfo.get_or_insert(users.get_current_user().user_id())

إذا كنت بحاجة حقًا إلى تخزين معرف للمستخدم في مكان آخر ، فيمكنك استخدام DB.StringProperty لتخزين معرف المستخدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top