বিভিন্ন কারণে ^, আমি আমার কিছু জ্যাঙ্গো মডেলগুলিতে একটি ইউইউডি একটি প্রাথমিক কী হিসাবে ব্যবহার করতে চাই। যদি আমি এটি করি তবে আমি কী এখনও কন্টেন্টটাইপের মাধ্যমে জেনেরিক সম্পর্ক ব্যবহার করে "অবদান.কমেন্টস", "জাঙ্গো-ভোটদান" বা "জ্যাঙ্গো-ট্যাগিং" এর মতো বাইরের অ্যাপ্লিকেশনগুলি ব্যবহার করতে সক্ষম হব?
উদাহরণস্বরূপ "জাঙ্গো-ভোটদান" ব্যবহার করে ভোটের মডেলটি দেখতে এমন দেখাচ্ছে:
class Vote(models.Model):
user = models.ForeignKey(User)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
object = generic.GenericForeignKey('content_type', 'object_id')
vote = models.SmallIntegerField(choices=SCORES)
এই অ্যাপ্লিকেশনটি ধরে নিয়েছে বলে মনে হচ্ছে যে মডেলটিতে ভোট দেওয়া হচ্ছে তার জন্য প্রাথমিক কীটি একটি পূর্ণসংখ্যা।
অন্তর্নির্মিত মন্তব্য অ্যাপ্লিকেশনটি অ-পূর্ণসংখ্যা পিকেগুলিকে পরিচালনা করতে সক্ষম বলে মনে হচ্ছে, যদিও:
class BaseCommentAbstractModel(models.Model):
content_type = models.ForeignKey(ContentType,
verbose_name=_('content type'),
related_name="content_type_set_for_%(class)s")
object_pk = models.TextField(_('object ID'))
content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk")
এই "পূর্ণসংখ্যা-পিকে-ধরে নেওয়া" সমস্যাটি কি তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলির জন্য একটি সাধারণ পরিস্থিতি যা ইউইউডিগুলি ব্যবহার করে ব্যথা করে? বা, সম্ভবত, আমি এই পরিস্থিতিটি ভুলভাবে লিখছি?
খুব বেশি ঝামেলা না করে জ্যাঙ্গোতে কি ইউআইডিগুলিকে প্রাথমিক কী হিসাবে ব্যবহার করার কোনও উপায় আছে?
^ কয়েকটি কারণ: অবজেক্টের গণনা গোপন করা, ইউআরএল "আইডি ক্রলিং" রোধ করা, বিরোধী অবজেক্ট তৈরি করতে একাধিক সার্ভার ব্যবহার করে, ...
default
।