我需要创建自己的中间模型.
class class1(models.Model)
class class2(models.Model):
field1 = models.ManyToManyField(class1, through="class3")
class class3(models.Model):
field1 = models.ForeignKey(class1)
field2 = models.ForeignKey(class2)
field3 = models.IntegerField()
class Meta:
auto_created = True
Run Code Online (Sandbox Code Playgroud)
我使用"auto_created = True",因为在下面的代码中,我有错误:
AttributeError:不能在指定中间模型的ManyToManyField上使用add().
for m2m_field in self._meta.many_to_many:
for m2m_link in getattr(self, m2m_field.get_attname()).all():
getattr(to_object, m2m_field.get_attname()).add(m2m_link)
Run Code Online (Sandbox Code Playgroud)
现在它工作正常,但是当我尝试进行makemigration时,django想要删除我的class3(中间类),并删除class2中field1中的"through"属性.
我究竟做错了什么 ?有解决方案吗
Tks all.
我使用Robot Framework.
在我的HTML页面上,我有一个简单的按钮.单击它时,它会下载pdf文件.
如果文件已下载,我如何查看Robot Framework?
TKS
我找到了一个解决方案,请转到@ ombre42:
${SERVER} ${SERVER_DEV}
${NAME} Robot
${FILE_NAME} Robot.pdf
${CLASS_NAME} in
${DOWNLOAD_DIRECTORY} C:\\robot_download
Scenario: User can download
Create Directory ${DOWNLOAD_DIRECTORY}
${CHROME_OPTIONS}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${disabled} Create List Chrome PDF Viewer
${prefs} Create Dictionary download.default_directory=${DOWNLOAD_DIRECTORY} plugins.plugins_disabled=${disabled}
Call Method ${CHROME_OPTIONS} add_experimental_option prefs ${prefs}
Create Webdriver Chrome chrome_options=${CHROME_OPTIONS}
Goto ${SERVER}
Click Element ${NAME}
Wait Until Element Is Visible css=div.${CLASS_NAME} 8
Page Should Contain ${NAME}
Set Selenium Speed 10s
Download PDF ${NAME}
File Should Exist C:\\robot_download\\${FILE_NAME}
Run Code Online (Sandbox Code Playgroud)