【发布时间】:2013-11-19 17:38:50
【问题描述】:
我目前正在尝试将pathToScan, FKtoTld 字段插入PathsOfDomain。问题是,我希望能够从Tld 表中获取id 字段以获取提交的值(请参阅下面的view),然后使用dbInsert var 提交。问题是EnteredDomain var 下面是为Tld 表中的DomainNm 列输入的值。
我怎样才能获得Tld 中行的id 并将其包含在dbInsert 中?
我有两张桌子:
class Tld(models.Model):
domainNm = models.CharField(verbose_name="",max_length=40,unique=True,validators=[RegexValidator('^[a-zA-Z0-9]+\.[a-zA-Z]{1,4}$','format: domain.com only','Invalid Entry')])
FKtoClient = models.ForeignKey(User)
def __unicode__(self):
return (self.domainNm)
class PathsOfDomain(models.Model):
pathToScan = models.CharField(max_length=200)
#urlHttpResponse = models.IntegerField(max_length=3)
FKtoTld = models.ForeignKey(Tld) # [id] from Tld table
我有一个 Django View:
def Processinitialscan(request):
# mechanize options here
EnteredDomain = request.GET.get('domainNm')
GetEnteredDomainObjects = Tld.objects.get(DomainNm=EnteredDomain)
EnteredDomainRowID = GetEnteredDomainObjects.objects.get(pk=GetEnteredDomainObjects)
EnteredDomain 的值可能类似于 - site.com
我有一个循环:在上面view 中导入的类中。
for url in urls:
mb.open(url) # mechanize opens each url in urls[]
beautifulSoupObj = BeautifulSoup(mb.response().read()) #beautifulsoup reads in the mechanize response
elements = beautifulSoupObj.select("h3.r a") #get just the elements we want
#for each element found, insert the 'href' value for pathToScan Field and include
#PK value (id) field from the submitted domain in table [Tld] into PathsOfDomain - FkToTld field.
#finally, save this all()
for element in elements:
#print(i.attrs["href"])
dbInsert = PathsOfDomain(pathToScan=element.attrs["href"],FKtoTld=EnteredDomainRowID)
dbInsert.save()
非常感谢任何帮助。谢谢。
以上代码当前正在抛出错误: 无法通过 Tld 实例访问管理器 我认为是因为这条线:
EnteredDomainRowID = GetEnteredDomainObjects.objects.get(pk=GetEnteredDomainObjects)
【问题讨论】:
-
你在使用 Django 模型吗?这些将比架构图更有帮助
-
@Izkata - 请查看更新后的帖子
-
什么是
urls?您是否检查了任何变量以查看哪里出错了?你如何从视图进入循环? ...ETC。我看不出有什么明显错误,所以它可能是您没有向我们展示的代码的一部分 - 看起来您还没有向我们展示很多代码。 -
PathToTldFKId也从未被定义 -
urls[] 在文件 urldata.py 中定义,该文件包含在 views.py 中。
标签: python mysql django insert crud