Note that there are some explanatory texts on larger screens.

plurals
  1. PODjango admin: "coercing to Unicode: need string or buffer, int found"
    primarykey
    data
    text
    <p>I'm getting</p> <pre><code>coercing to Unicode: need string or buffer, int found </code></pre> <p>when I try to view a user profile in the Django admin. None of the other object types are returning this error. The error is happening on <code>{{ field.field }}</code></p> <p>Any ideas?</p> <pre><code>&lt;div class="controls"&gt; {% if field.is_readonly %} &lt;p&gt;{{ field.contents }}&lt;/p&gt; {% else %} {{ field.field }} {% endif %} {% if not field.is_readonly and field.errors %}&lt;span class="help-inline"&gt;{{ field.errors|striptags }}&lt;/span&gt;{% endif %} {% if field.field.help_text %} &lt;span class="help-block"&gt;{{ field.field.help_text|safe }}&lt;/span&gt; {% endif %} &lt;/div&gt; </code></pre> <p>The code below is modified to include only relevant info.</p> <p>User Profile Model</p> <pre><code>class UserProfile(models.Model): # This field is required. user = models.OneToOneField(User) # Other fields here created = models.DateTimeField(auto_now_add=True) teams = models.ManyToManyField(Team, null=True, blank=True) projects = models.ManyToManyField(Project, null=True, blank=True) entries = models.ManyToManyField(Entry, null=True, blank=True) def __unicode__(self): return self.user.username </code></pre> <p>Team Model</p> <pre><code>class Team(models.Model): name = models.CharField(max_length=30, default="Team", unique=False) created = models.DateTimeField(auto_now_add=True) projects = models.ManyToManyField(Project, null=True, blank=True) members = models.ManyToManyField(User) slug = models.SlugField(max_length=30, unique=False) def save(self, *args, **kwargs): if not self.id: # Newly created object, so set slug self.slug = slugify(self.name) super(Team, self).save(*args, **kwargs) @property def admin(self): return self.created_by def __unicode__(self): return self.name </code></pre> <p>Project Model</p> <pre><code>class Project(models.Model): name = models.CharField(max_length=40, default="Project") created = models.DateTimeField(auto_now_add=True) fields = models.PositiveIntegerField(default=5) entries = models.ManyToManyField(Entry, null=True, blank=True) slug = models.SlugField(max_length=40, unique=False) created_by = models.ForeignKey(User, related_name='project_created_by') members_that_entered = models.ManyToManyField(User, related_name='project_members_that_entered', null=True, blank=True) members = models.ManyToManyField(User, related_name='project_members', null=True, blank=True) def save(self, *args, **kwargs): if not self.id: # Newly created object, so set slug self.slug = slugify(self.name) super(Project, self).save(*args, **kwargs) def __unicode__(self): return self.name </code></pre> <p>Entry Model</p> <pre><code>class Entry(models.Model): entry = models.TextField(max_length=500) created = models.DateTimeField(auto_now_add=True) user = models.ForeignKey(User, null=True, blank=True) def __unicode__(self): return self.entry </code></pre> <p>Entry Function</p> <pre><code>def add_entry(request, teamslug, projectslug): user = request.user try: project = Project.objects.get( id=request.POST.get("project_id")) entries = request.POST.getlist("entry") team = Team.objects.get( id=request.POST.get("team_id")) except Project.DoesNotExist: messages.warning(request, "Looks like something went wrong. Try again.") return HttpResponseRedirect(reverse('project_url', args=(teamslug, projectslug, team.id, project.id))) realentries = [] for e in entries: if e != '': realentries.append(e) for e in realentries: entry = e entry, created = Entry.objects.get_or_create( entry=entry, user=user) project.entries.add(entry) if not user in project.members_that_entered.all(): project.members_that_entered.add(user) # remove entries. count amount of entries # by user in project. if none, remove. project.save() profile = request.user.get_profile() profile.entries.add(entry) profile.entered_in.get_or_create( project=project, team=team) profile.save() return HttpResponseRedirect(reverse('project_url', args=(teamslug, projectslug, team.id, project.id))) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload