Unë kam 3 tabela në projektin tim, e para është tabela e parazgjedhur e përdoruesve os django me fjalëkalimin e emrit të përdoruesit, emrin dhe mbiemrin, e dyta është profili i përdoruesit dhe e treta është aksionet.
tabela e përdoruesve është për ruajtjen e të dhënave si të shitësve ashtu edhe të blerësve.
class Stocks(models.Model):
user=models.ForeignKey(User, null=True)
name=models.CharField(max_length=128,verbose_name=_('stockname'))
number=models.CharField(blank=True,null=True,max_length=64,verbose_name=_('number'))
brand=models.CharField(max_length=64, validators=[
RegexValidator(regex='^[A-Z]*$',message=_(u'brand must be in Capital letter'),)]
,verbose_name=_('brand'))
comment=models.CharField(blank=True,null=True,max_length=264,verbose_name=_('comment'))
price=models.PositiveIntegerField(blank=True,null=True,verbose_name=_('price'))
date=models.DateTimeField(auto_now_add = True,verbose_name=_('date'))
checking= ((_('pending'),_('pending')),
(_('reject'),_('reject')),
(_('approved'),_('approved')),
(_('expired'),_('expired')),
)
confirm=models.CharField(choices=checking,max_length=12,verbose_name=_('confirmation'), default=_('pending'))
def __str__(self):
return str(self.name)
class Meta:
verbose_name=_('Stock')
verbose_name_plural=_('Stocks')
def get_absolute_url(self):
return reverse('BallbearingSite:mystocks' )
class UserProfileInfo(models.Model):
user=models.OneToOneField(User,related_name='profile')
phone_regex = RegexValidator(regex=r'^\d{11,11}$', message=_(u"Phone number must be 11 digit."))
cellphone = models.CharField(validators=[phone_regex], max_length=17,verbose_name=_('cellphone'))
tel = models.CharField(validators=[phone_regex], max_length=17,verbose_name=_('tel'))
state=models.CharField(validators=[farsi_regex],max_length=128,verbose_name=_('state'))
city=models.CharField(validators=[farsi_regex],max_length=128,verbose_name=_('city'))
address=models.CharField(validators=[farsi_regex],max_length=264,verbose_name=_('address'))
def __str__ (self):
return self.user.username
class Meta:
verbose_name=_('UserProfileInfo')
verbose_name_plural=_('UserProfileInfos')
blerësi mund të zgjedhë aksionet për të blerë të cilat shitësi i ka dërguar. kështu që në tabelën time të katërt, unë duhet të kem ID-në e shitësit, ID-në e blerësit dhe ID-në e aksioneve që i referohet tabelës së përdoruesit dhe tabelës së aksioneve. dua të di se cila fushë duhet të përkufizohet si onetoone dhe cila si çelës i huaj? dhe si mund të përcaktoj që i referohet ID-së së përdoruesit dhe ID-së së aksioneve në tabelën e tyre?
Kam shkruar këtë model:
class SellerDesktop(models.Model)
seller=models.OneToOneField(User, related_name='seller')
buyer=models.OneToOneField(User, related_name='buyer')
stock=models.ForeignKey(Stocks)
def __str__(self):
return str(self.seller) + '-' + str(self.buyer)
class Meta:
verbose_name=_('SellerDesktop')
verbose_name_plural=_('SellerDesktop')
por në panelin e administratorit unë mund të zgjedh aksionet vetëm me emrin e tyre, por dua të zgjedh ID-në e secilit aksion që është unik sepse secili emër ka markë të ndryshme dhe secila markë ka numër të ndryshëm dhe unë nuk mund të zgjedh vetëm me emër