Tôi rất muốn tích hợp pylint vào quá trình xây dựng cho các dự án python của mình, nhưng tôi đã chạy vào một trình chặn hiển thị: Một trong những loại lỗi mà tôi thấy cực kỳ hữu ích--: E1101: *%s %r has no %r
member*
- báo cáo lỗi thường xuyên khi sử dụng các trường django thông thường , ví dụ:
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
Điều này được gây ra bởi mã này:
def get_user_tags(username):
"""
Gets all the tags that username has used.
Returns a query set.
"""
return Tag.objects.filter( ## This line triggers the error.
tagownership__users__username__exact=username).distinct()
# Here is the Tag class, models.Model is provided by Django:
class Tag(models.Model):
"""
Model for user-defined strings that help categorize Events on
on a per-user basis.
"""
name = models.CharField(max_length=500, null=False, unique=True)
def __unicode__(self):
return self.name
Làm cách nào tôi có thể điều chỉnh Pylint để đưa các trường như đối tượng vào tài khoản đúng cách? (Tôi cũng đã tìm hiểu về nguồn Django và tôi không thể tìm thấy việc triển khai objects
, vì vậy tôi nghi ngờ đó không phải là "chỉ" một trường lớp. Mặt khác, tôi khá mới với python, vì vậy tôi rất có thể đã bỏ qua một cái gì đó.)
Chỉnh sửa: Cách duy nhất tôi thấy để nói với pylint là không cảnh báo về những cảnh báo này là bằng cách chặn tất cả các lỗi thuộc loại (E1101) không phải là một giải pháp chấp nhận được, vì theo tôi (đó là một lỗi cực kỳ hữu ích. Nếu có một cách khác, mà không làm tăng nguồn pylint, xin vui lòng chỉ cho tôi chi tiết cụ thể :)
Xem ở đây để biết tóm tắt về các vấn đề tôi gặp phải pychecker
và pyflakes
- chúng đã được chứng minh là không ổn định khi sử dụng chung. (Trong trường hợp của pychecker, các sự cố bắt nguồn từ mã pychecker - không phải là nguồn mà nó đang tải / gọi.)