Model:
class Company(models.Model):
id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 30)
parent = models.ForeignKey('self', null=True, blank=True)
Form:
class CompanyForm(forms.ModelForm):
class Meta:
model = Company
fields = ['name', 'parent']
When I view the form's 'parent' dropdown, I get a list of objects:
I want to display the objects' names in the dropdown instead:
What lines of code do I need to add?
You have to implement the __unicode__
legacy method, or if you are up to date, you'll implement the __str__
method, decorating the class as python2compatible seen in the django 1.11 docs:
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class Company(models.Model):
id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 30)
parent = models.ForeignKey('self', null=True, blank=True)
def __str__(self):
return '%s' % self.name
In 2019, you'll probably/hopefully start your project in python3, and will be able to omit all the python 2/3 compatibility things.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments