Python Django视图未在数据库中创建记录
我无法通过管理员在FinTransDetail表中创建记录:当我尝试添加记录时,我遇到了错误。请帮助解决这些问题。因为我不能通过管理员添加,所以我也不能通过视图添加记录。但我可以通过admin和by me视图在FinTransHeader中添加记录 型号:Python Django视图未在数据库中创建记录,python,html,django,foreign-keys,admin,Python,Html,Django,Foreign Keys,Admin,我无法通过管理员在FinTransDetail表中创建记录:当我尝试添加记录时,我遇到了错误。请帮助解决这些问题。因为我不能通过管理员添加,所以我也不能通过视图添加记录。但我可以通过admin和by me视图在FinTransHeader中添加记录 型号: class FinTransHeader(models.Model): """Model representing a book (but not a specific copy of a book).&quo
class FinTransHeader(models.Model):
"""Model representing a book (but not a specific copy of a book)."""
fh_type = models.CharField(max_length=200)
fh_code = models.CharField(max_length=200)
fh_no = models.DecimalField(max_digits = 5, decimal_places = 0,unique=True)
fh_dt = models.DateField()
fh_detail=models.CharField(max_length=200,blank=True,null=True)
fh_cust_code = models.CharField(max_length=200,blank=True,null=True)
fh_user_code =models.CharField(max_length=200,blank=True,null=True)
fh_ref=models.CharField(max_length=200,default='nil',blank=True,null=True)
fh_status=models.CharField(max_length=1,default=0)
fh_post_status = models.BooleanField(default=False)
th_prt_status=models.BooleanField(default=False)
def __str__(self):
"""String for representing the Model object."""
return str(self.fh_code)
# return self.fh_no
class FinTransDetail(models.Model):
fd_no = models.ForeignKey( FinTransHeader,on_delete=models.CASCADE)
fd_acct = models.ForeignKey(AccountMaster, to_field='AcctCode',on_delete=models.CASCADE)
fd_debit = models.DecimalField(max_digits=12, decimal_places=2, default=0, blank=True)
fd_credit = models.DecimalField(max_digits=12, decimal_places=2, default=0, blank=True)
fd_detail=models.CharField(max_length=200, null=True, blank=True )
fd_tax = models.DecimalField(max_digits=12, decimal_places=2, default=0, blank=True)
fd_posting=models.BooleanField(default=False, blank=True, null=True)
def __str__(self):
"""String for representing the Model object."""
# return self.ToString(AcctCode)+"-"+self.AcctName
return str(self.fd_no)
当我尝试在FinTransDetail中添加记录时,我收到如下Html错误:
TypeError at /admin/waccounts/fintransdetail/add/
__str__ returned non-string (type int)
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/waccounts/fintransdetail/add/
Django Version: 3.1.1
Exception Type: TypeError
Exception Value:
__str__ returned non-string (type int)
Exception Location: C:\Users\ESHACK.TOSHIBA-HOME\PycharmProjects\milestone1_udemy\venv\lib\site-
packages\django\forms\models.py, line 1240, in label_from_instance
Python Executable: C:\Users\ESHACK.TOSHIBA-
HOME\PycharmProjects\milestone1_udemy\venv\Scripts\python.exe
Python Version: 3.7.4
Python Path:
['C:\\MY DATA FOLDER THOSHIBA\\MY FIELS_SYN_DOCSTOGO\\Django Projects',
'C:\\Program Files\\JetBrains\\PyCharm 2019.2.6\\helpers\\pycharm_display',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\AppData\\Local\\Programs\\Python\\Python37-32\\lib',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\AppData\\Local\\Programs\\Python\\Python37-32',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\PycharmProjects\\milestone1_udemy\\venv',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\PycharmProjects\\milestone1_udemy\\venv\\lib\\site-packages',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\PycharmProjects\\milestone1_udemy\\venv\\lib\\site-
packages\\setuptools-40.8.0-py3.7.egg',
'C:\\Users\\ESHACK.TOSHIBA-HOME\\PycharmProjects\\milestone1_udemy\\venv\\lib\\site-packages\\pip-
19.0.3-py3.7.egg',
'C:\\Program Files\\JetBrains\\PyCharm '
'2019.2.6\\helpers\\pycharm_matplotlib_backend']
Server time: Thu, 06 May 2021 15:28:06 +0000
在数据库中,
FinTransDetail
的fd_no
列将是FinTransHeader
对象主键的值。这将是一个整数
def\uuuu str\uuuuuu(自):
返回self.fd_编号
返回self.fd\u no
将返回该整数值
我想您希望FinTransDetail
的\uuuu str\uuuu
函数调用FinTransHeader
的\uu str\uuu
函数,因为它是一个外键,但如果您想获得fh\u code
值,请使用
#FinTransDetail类
定义(自我):
返回self.fd\u编号fh\u代码
我觉得这些模型的str方法很好,也许您需要查看模型AccountMaster?(因为它是外键,所以它的选择小部件需要使用它的str方法)–Abdul Aziz Barkat 14小时前
阿卜杜勒·阿齐兹·巴卡特先生是对的。我更正了主帐户,它正在添加记录。感谢您为这些模型提供的
\uuu str\uuuu
方法,我觉得很好,也许您需要查看模型AccountMaster
?(因为它是一个外键,所以它的select小部件需要使用它的\uuu str\uu
方法)