我正在使用django的项目,我写了我的models.py
我有两个班级
class Adresse(models.Model):
numV=models.IntegerField(blank=False,null=False)
complementdest=models.TextField(blank=False,null=False)
complementadr=models.TextField(blank=False,null=False)
commune=models.TextField(blank=False,null=False)
codeP=models.IntegerField(blank=False,null=False)
pays=models.TextField(blank=False,null=False)
def __str__(self):
return self.numV
return self.complementdest
return self.complementadr
return self.commune
return self.codeP
return self.pays
def __Adr__(self):
return self.adr1.all()
和
class CompteCandidat(myUser):
sexe = models.TextField(max_length=10)
datecr = models.DateTimeField(auto_now_add = True)
adresse=models.OneToOneField('Adresse',related_name='adr1',null=True, default=None)
def __str__(self):
return self.first_name
return self.last_name
return self.email
return self.sexe
def __Adr__(self):
return self.adresse.all()
我尝试做这样的测试:
adresse = Adresse(numV =' 254',compledest =' xxxxx',compleadr =' Eugene拿破仑',commune =' Paris' ;,CODEP =' 75012',支付='法国&#39)
C1 = CompteCandidat(用户名='露娜',如first_name ='西莉亚',姓氏='杜兰德',密码=' CCC' ,电子邮件=' hello2@gmail.com',类型=' candidat',住址=住址) adresse.save() c1.save()
当我尝试通过使用此命令查看我的Adresse或CompteCandidat中的内容时,它无法正常工作
>>> Adresse.__getattribute__(numV)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'numV' is not defined
我想知道我想在Adresse和CompteCandidat中展示我的内容,以确保添加有效
我知道我能做到:
>>> adresse.numV
'254'
但是它只能在控制台中使用另一种方法来查询所有数据库而不使用临时变量的名称????
答案 0 :(得分:0)
你可以使用
public void save_image()
{
Graphics2D g;
g = (Graphics2D) bf1.getGraphics();
g.drawImage(bf2, captureRect.x, captureRect.y, captureRect.width, captureRect.height, null);
g.dispose();
//i draw the crypted pixels on my original image and create new image
File outputFile = new File("C:/USERS/HP/DesKtop/output.jpg");
try {
ImageIO.write(bf1, "jpg", outputFile);
} catch (IOException ex) {
Logger.getLogger(MenuGenerale2.class.getName()).log(Level.SEVERE, null, ex);
}
}
查看所有记录或Adresse.objects.all()
看到满足这种条件的记录。
如需完整参考,请检查:
https://docs.djangoproject.com/ja/1.9/topics/db/queries/
答案 1 :(得分:0)
首先在控制台中试试这个:
>>>A = {numV='254',complementdest='xxxxx',complementadr='Eugene napoleon',commune='Paris',codeP='75012',pays='France'}
>>> adresse = Adresse(**A)
>>> adresse.save()
首先您将面临错误,因为numV
为Integer
,但您正在为其分配String
,因此应将numV = '254'
修改为numV = 254
在第一行。
然后再次尝试上面的步骤,并在哪个步骤面临错误。
答案 2 :(得分:0)
两件事:
__str__
必须只返回一个字符串 - 因为它代表您尝试返回多个非字符串值。
__getattribute__
方法(以及它的对应getattr
)应该传递属性的名称,即字符串。除非在特殊情况下,你也不应该试图直接致电__getattribute__
:即。你有某种形式的循环访问 - 你不会在这里。
没有理由adresse.numV
不能直接在您的代码中工作 - 这是从实例中检索属性的常规方法。如果您在其他地方的字符串中有属性名称,则只应使用getattr
。
冒着听起来粗鲁的风险 - 如果你正在努力编写能够正确访问属性的代码,那么尝试编写Django应用程序就是在你走之前尝试运行的情况。