首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:“Seekerskillset”对象没有属性“skill_name”

AttributeError:“Seekerskillset”对象没有属性“skill_name”
EN

Stack Overflow用户
提问于 2021-07-17 04:35:46
回答 1查看 240关注 0票数 0

我正在尝试实现在关系中插入多个对象的bulk_create,不确定我是否做对了--我在下面添加了跟踪--这是技能集模型

代码语言:javascript
复制
class Skillset(models.Model):
    skill_name = models.CharField(max_length=255)

    def __str__(self):
        return self.skill_name

我的观点

代码语言:javascript
复制
skill_name = request.POST.getlist('skill_name')
        skill_level = request.POST.getlist('skill_level')
        print(f'skill name-> {skill_name} skill level ->{skill_level}')
        seeker_skll = []
        # testing destructing
        for skill_nme, skill_lvl in zip(skill_name, skill_level):
            skill_set = Skillset.objects.get(skill_name=skill_nme)
            seeker_skll.append(Seekerskillset(
                skill_set=skill_set, skill_level=skill_lvl, seeker=user))

        seeker_skll = Skillset.objects.bulk_create(seeker_skll)
        print(seeker_skll)
        return redirect('/users/dashboard')

模型

代码语言:javascript
复制
class Seekerskillset(models.Model):
    skill_set = models.ForeignKey(Skillset, on_delete=models.CASCADE)
    seeker = models.ForeignKey(SeekerProfile, on_delete=models.CASCADE)
    skill_level = models.CharField(max_length=25)

    class Meta:
        verbose_name = 'Seeker skill set'

错误--我得到了

AttributeError:“Seekerskillset”对象没有属性“skill_name”

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "C:\Users\atif\PycharmProjects\my_proj\mysite_jobportal\seekerbuilder\views.py", line 43, in update_details
    seeker_skll = Skillset.objects.bulk_create(seeker_skll)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 515, in bulk_create
    objs_without_pk, fields, batch_size, ignore_conflicts=ignore_conflicts,
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 1293, in _batched_insert
    self._insert(item, fields=fields, using=self.db, ignore_conflicts=ignore_conflicts)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 1270, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\compiler.py", line 1415, in execute_sql
    for sql, params in self.as_sql():
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\compiler.py", line 1360, in as_sql
    for obj in self.query.objs
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\compiler.py", line 1360, in <listcomp>
    for obj in self.query.objs
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\compiler.py", line 1359, in <listcomp>
    [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\sql\compiler.py", line 1310, in pre_save_val
    return field.pre_save(obj, add=True)
  File "C:\Users\atif\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\fields\__init__.py", line 822, in pre_save
    return getattr(model_instance, self.attname)

Exception Type: AttributeError at /users/app_det/
Exception Value: 'Seekerskillset' object has no attribute 'skill_name'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-19 07:28:09

该问题是由于使用Skillset批量创建Seekerskillset对象造成的。

因此,改变:

代码语言:javascript
复制
seeker_skll = Skillset.objects.bulk_create(seeker_skll)

至:

代码语言:javascript
复制
seeker_skll = Seekerskillset.objects.bulk_create(seeker_skll)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68417432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档