Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

552
Views
How to solve value error -cannot assign... in Django

I added a new row to my model that assigns the recent project to the page where I can turn on some charts but if I hit the save button I get this error message that I can't figure out why:

ValueError at /mpa/project_details/1/
Cannot assign "'1'": "ProjectDetailsAdmin.projekt" must be a "Projekt" instance.

views.py

@user_passes_test(lambda u: u.is_superuser)
def project_details(request, projekt_id):
    projekt = Projekt.objects.raw('SELECT projekt_id, id FROM stressz_profile WHERE stressz_profile.projekt_id=%s', [projekt_id])
    projects_details = Profile.objects.filter(projekt_id=projekt_id)
    allprojects = Projekt.objects.all()
    ... lots of queries here

context = {
    ...
    'projekt': projekt,
    'projects_details': projects_details,
    'allprojects': allprojects,
    ...
    

}

if request.method == 'POST':
    projekt = request.POST.get('projekt')
    projekt_name = request.POST.get('projekt_name')
    r01 = request.POST.get('r01') 
    
    szervkult_adm = ProjectDetailsAdmin(projekt=projekt, projekt_name=projekt_name r01=r01)
    szervkult_adm.save()

return render(request, 'stressz/project_details.html', context)

models.py

class ProjectDetailsAdmin(models.Model):

def __str__(self):
    return str(self.projekt_name)

     projekt = models.ForeignKey('Projekt', on_delete=models.CASCADE, default=False, null=True )
     projekt_name = models.TextField(max_length=200, null=True )
     r01 = models.IntegerField(null=True, blank=True, default=0)


class Projekt(models.Model):

    def __str__(self):
        return str(self.projekt)

    projekt = models.TextField(max_length=150)

html

<div class="container bg-warning my-3">Válaszd ki projektet:
  <select class="form-select" id="projekt" name="projekt" aria-label="">
    {% for i in allprojects %}
      <option>{{ i.id }}</option>
    {% endfor %}
  </select>
</div>

Thank you very much in advance!

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

projekt is a string that contains a number, not a Projekt model object, which is necessary.

You can however assign to the projekt_id field:

if request.method == 'POST':
    projekt = request.POST.get('projekt')
    projekt_name = request.POST.get('projekt_name')
    r01 = request.POST.get('r01') 
    
    szervkult_adm = ProjectDetailsAdmin.objects.create(
        projekt_id=projekt,
        projekt_name=projekt_name,
        r01=r01
    )

If you make a ForeignKey named foo, then you can "talk" with that field through foo, or foo_id where foo_id takes the value of the column referred to by the ForeignKey.

over 4 years ago · Santiago Trujillo Report

0

if request.method == 'POST':
    projekt = request.POST.get('projekt')
    projekt_name = request.POST.get('projekt_name')
    r01 = request.POST.get('r01') 

    szervkult_adm = ProjectDetailsAdmin(projekt_id=projekt, 
    projekt_name=projekt_name r01=r01)
    szervkult_adm.save()

Whenever you update or create anything in the table contains foreign Key you need to pass the object of primary key or you can assign primary key directly like projekt_id=projekt.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!