j'ai un modèle:Django: objet de classe n'a pas d'attribut de fonction standard
class Order(models.Model):
STATUS_CHOICES = (
(100, 'First'),
(200, 'Second'),
)
status = models.IntegerField('Status', choices=STATUS_CHOICES)
def accept(self):
self.status = 200
self.save()
return self.status, self.get_status_display()
et moi avons une unité de test pour elle:
class CustomTestCase(TestCase):
@classmethod
def setUp(self):
pass
@classmethod
def save(self):
pass
class OrderTest(CustomTestCase):
def test_accept(self):
result = Order.accept(self)
expected = (200, 'Second')
self.assertEqual(expected, result)
Comme vous pouvez le voir, j'ai ajouté ' sauver » fonction qui ne font rien, la raison en est que sans cette mesure « Enregistrer » fonction que je continue à obtenir cette erreur:
[OrderTest] object has no attribute [save]
S'il y a une meilleure solution à cette fonction de sauvegarde personnalisée, dites-le moi. Mais ce type de solution ne fonctionnera pas avec la fonction 'get_status_display()' de django. Et sans solution je continue à avoir ce problème:
[OrderTest] object has no attribute [get_status_display]
Que puis-je faire pour que cela fonctionne comme j'ai besoin?
Devrait-il être passé à la fonction d'acceptation? Oder.accept()? –
Dans ce cas, j'ai eu: "TypeError: accept() manquant 1 argument positionnel requis: 'self'" – Madi7