嗨,我有以下代码我在feature_list = ['spa','castle','country_house','coast','golf','boutique','civil','private_hire','city','gay'] 在数据库中,值是1或0。所以我尝试检查它们是否为1并将它们附加到新数组中。

try:
        hotel_main = models.Hotel.objects.get(slug=slug)
    except models.Hotel.DoesNotExist:
        try:
            hotel_main = models.Hotel.objects.get(id=id)
        except models.Hotel.DoesNotExist:
            raise Http404
    feature_list = ['spa','castle','country_house','coast','golf','boutique','civil','private_hire','city','gay']
    hotel_features = []
    for feature in feature_list: 
        if hotel_main.feature == 1: 
            hotel_features.append(feature)  

它给了我以下错误: “酒店”对象没有属性“功能”

但是在我的理解中,功能应该代表数组的字符串...请纠正我

#1楼 票数:0 已采纳

你在做什么错了。 尝试这个 -

hotel_main = models.Hotel.objects.get(slug=slug)
feature_list = ['spa','castle','country_house','coast','golf','boutique','civil','private_hire','city','gay']
hotel_features = []
for feature in feature_list: 
    if getattr(hotel_main, feature, 1):
        hotel_features.append(feature)

之所以会给出异常,是因为您正在使用hotel_main对象动态检查列字段。 . 我认为功能不适用于字符串文字。 因此介绍了getattr

希望这可以帮助...

#2楼 票数:0

但是在我的理解中,功能应该代表数组的字符串...请纠正我

您将数组中的字符串分配给feature是正确的,但是您的问题出在调用hotel_main.feature Python认为您正在hotel_main对象上寻找名为“ feature”的属性。 要使用当前分配给变量的内容查找属性,您应该使用Python的内置getattr函数

feature_value = getattr(hotel_main, feature, 0) //default to not having the feature
if feature_value == 1:
    // the rest of your code

  ask by user1529342 translate from so

未解决问题?本站智能推荐:

1回复

在Django中将字符串与数据库匹配

用户将进入网站并填写注册表。 注册表中下方显示一个问题,您想学习哪些科目? 用户回答-我想学习印地语和英语 我下面显示了2个数据库。 现在,用户的答案应与一个最大精度的数据库表匹配,应选择与最大精度匹配的数据库表。 我无法准确匹配,如果用户以其他方式写信,例如
2回复

如何在Django中将字符串与数据库字段匹配?

我有一个name列包含数据的数据库 现在给定了一个字符串,我如何查找name字段中是否包含给定字符串中的任何单词? 例如: 我有一个字符串'super very news' 。 我需要查看数据库以查看是否有任何记录,使得name字段包含'super'或'very'或'new
1回复

如何在django模型查询中从mysql数据库获取datetime作为字符串

我使用下面的查询从django 1.9中的mysql数据库中获取字段。 现在在结果event_dict_list , start_date_time和end_date_time出现在python日期时间对象格式中,如下所示 我想把它作为YYYY-mm-dd HH:MM:SS格式的
1回复

Django数据库查询在比较字符串时给出了意外的“非法双精度”

我正在努力了解为什么我的Django数据库查询失败。 我的Django查询如下所示: the_firebaseUID = self.request.query_params.get('firebaseUID', None) this_user_profile = User
1回复

如何在 django 查询集的 values_list() 函数中将日期时间字段作为字符串获取?

我有一个包含日期时间字段的模型。 我需要将该模型表中的行写入 Excel 表。 由于模型字段是日期时间字段,因此在写入 excel 时,它会为日期写入类似45976等的数字,而不是将2020-04-01作为字符串写入。 我正在使用queryset.values_list(*fields_to_f
2回复

如何在Django中将字符串转换为调用模型的名称?

view.py 在html文件中:我使用复选框选择“ Mango”和“ Banana”,然后view.py获取复选框的值。 然后我要选择用户选择的模型。 当我运行此代码时,在/ search'str'对象上没有Attribute'objects'出现AttributeError。
2回复

在 Django 中将用户数据解码为字符串

我在 Django 中有一个名为 Account 的模型 我正在尝试将电子邮件打印为 views.py 中的字符串。 我收到以下错误: 将数据从models.py传输到views.py时,如何在Django中将电子邮件解码为字符串? 我发现 Reddit 上的这个帖子很有帮助,它让我相
3回复

如何在 Django 模型中将字符串值设置为浮点字段的默认值

我无法在 Django 模型的浮点字段中将字符串值设置为默认值。 这是我的代码: 当我尝试运行代码时,出现此错误: