Аргумент int () должен быть строкой, байтовоподобным объектом или числом, а не 'builtin_function_or_method' - PullRequest
0 голосов
/ 03 июня 2019

Привет, ребята, я пытаюсь вызвать модель из модели Организатора в модели спонсора, а EventDetails из модели организатора относится к модели спонсора при получении первичного ключа eventDetail. Я не могу получить

views.py

if request.method =='POST':
    eventDetail =EventDetails()
    if EventDetails.objects.filter(pk=id,event=request.POST['event_title']).exists():
        event_id =eventDetail.id


    sponsor_ship=SponsorShipDetails(event_id=event_id,event_title=event_title,platinum_sponsor=platinum_sponsor,f_platinum=f_platinum,ex_platinum=ex_platinum,gold_sponsor=gold_sponsor,
                f_gold=f_gold,ex_gold=ex_gold,silver_sponsor=silver_sponsor,f_silver=f_silver,ex_silver=ex_silver)
            sponsor_ship.save()

model.py от ORganiser

class EventDetails(models.Model):

    event = models.CharField(max_length=100)
    no_participant = models.IntegerField()
    event_level = models.CharField(max_length=100)
    eligibility = models.CharField(max_length=100)
    prerequisite = models.TextField(max_length=1500)
    facility = models.CharField(max_length=100)
    event_detail_docs = models.FileField(upload_to='event_details_docs')


class SponsorShipDetails(models.Model):

    event_id =models.OneToOneField(EventDetails,on_delete=models.CASCADE,primary_key=True)
    event_title = models.CharField(max_length=100,default=True)
    platinum_sponsor =models.CharField(max_length=100)
    f_platinum = models.TextField(max_length=1500)
    ex_platinum=models.IntegerField()
    gold_sponsor =models.CharField(max_length=100)
    f_gold =models.TextField(max_length=1500)
    ex_gold = models.IntegerField()
    silver_sponsor= models.CharField(max_length=100)
    f_silver=models.TextField(max_length=1500)
    ex_silver = models.IntegerField()


TypeError at /Organizer/sponsorShipDetails
int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
Request Method: POST
Request URL:    http://localhost:8000/Organizer/sponsorShipDetails
Django Version: 2.1
Exception Type: TypeError
Exception Value:    
int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method'
Exception `enter code here`Location:    D:\Workspace\lib\site-packages\django\db\models\fields\__init__.py in get_prep_value, line 965
Python Executable:  D:\Workspace\python.exe
Python Version: 3.7.1

1 Ответ

0 голосов
/ 03 июня 2019

В классе SponsorShipDetails вы объявили event_id = OneToOneField для EventDetails, но «event_id» не существует в классе EventDetails. Выходом является «событие», которое не принимается в качестве первичного ключа в SponsorShipDetails. Измените имя, либо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...