字符串格式化时并非所有参数都被转换" Python Django

5 投票
2 回答
9053 浏览
提问于 2025-04-17 19:22

我在Windows Vista上用Python 2.7和Django 1.5编程,想要创建用户资料。但是,当我访问localhost:8000/admin/home/userprofile时,出现了1146错误,提示“表'demo.home_userprofile'不存在”。现在我在models.py里有:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.

class userProfile(models.Model):

    def url(self, filename):
        ruta = "MultimediaData/Users/$s/%s"%(self.user.username, filename)
        return ruta

    user = models.OneToOneField(User)
    photo = models.ImageField(upload_to = url)
    telefono = models.CharField(max_length = 30)

    def __unicode__(self):
        return self.user.username

而Django页面给我提示not all arguments converted during string formatting错误。这是一个让用户上传图片和电话号码的页面。看起来问题出在哪里呢?

2 个回答

4

为了让它能在Python 2和3中都能使用...

ruta = "MultimediaData/Users/{0}/{1}".format(self.user.username, filename)
6

修改:

ruta = "MultimediaData/Users/$s/%s"%(self.user.username, filename)

为:

ruta = "MultimediaData/Users/%s/%s"%(self.user.username, filename)
#                            ^ Notice the sign change

你似乎用了一个 $ 符号,而不是 % 符号,这就是问题所在。

撰写回答